2012-04-07 28 views
4

JavaScript関数Bを呼び出すと、FirefoxのJavaScriptコンソールに関数Aは定義されていませんが、Chromeブラウザ上で定義されています。そして、私がボディセグメントで関数 "A"を呼び出したとき:JavaScript関数 "a"が定義されていないのはなぜですか?

<input type="button" onclick="A()" value=" ..A.. "> 

Firefoxは関数Bが定義されていないと言っています。どうして?

<html> 
    <head> 
     <script language="javascript" type="text/javascript"> 
      function B() { 
       alert(" hi B "); 
       document.write('<br><br><input type="button" onClick="A()" value=" ..A..">'); 
      }; 

      function A() { 
       alert(" hi A"); 
       document.write('<br><br><input type="button" onclick="B()" value=" ..b..">'); 
       if (window.WebCL == undefined) { 
        alert("Unfortunately your system does not support WebCL. "); 
        return false; 
       } 
      } 
     </script> 
    </head> 
    <body> 
     <input type="button" onclick="B()" value=" ..B.. "> 
    </body> 
</html> 
+0

[フィドル](http://jsfiddle.net/F8Dwk/)そのフィドルのため –

+0

@TomaszNurkiewicz、クロムとFFの両方を私に警告を与え、どれもエラー – Pheonix

+0

を与えませんでした@ Pheonix:あなたは "hi B"と "hi A"アラートを取得しましたか? FF11では、 "hi B"警告が表示されますが、ボタンAを押すとコンソールエラーが発生します。 –

答えて

4

最初の書き込みは

+0

これが理由です。しかし、これは関数が '

3

を未定義されている機能で、その結果、文書の内容をクリアし、問題を効果的に既存のコンテンツを一掃され、ページがロードされた後、あなたがdocument.writeを呼び出しているということですページには、埋め込みスクリプトも含まれます。代わりにDOM manipulation methodsを使用してください。

1

はこの1つを試してみてください:

<html> 
<head> 
<script language="javascript" type="text/javascript"> 

var A = function() { 
    alert(" hi A"); 
    document.write('<br><br><input type="button" onclick="B()" value=" ..b..">'); 
    if (window.WebCL == undefined) { 
    alert("Unfortunately your system does not support WebCL. "); 
    return false; 
    } 
} 

function B(){ 
    alert(" hi B ");  
    document.body.innerHTML = ('<br><br><input type="button" onClick="new A()" value=" ..A..">'); 
} 

    </script> 
    </head> 

<body> 
    <input type="button" onclick="B()" value=" ..B.. "> 
</body> 

</html> 
+0

私はEhsanのフォームを受け入れ、私はDOMメソッドを研究に行く、ありがとう – 4l3x

関連する問題