为什么我的JavaScript函数“a”没有定义?

时间:2012-04-07 16:33:32

标签: javascript

当我调用我的JavaScript函数B时,Firefox中的JavaScript控制台表示函数A未定义,但在Chrome浏览器上定义了它。当我在身体部分中调用函数“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>

3 个答案:

答案 0 :(得分:4)

第一次写入会清除文档内容,导致函数A未定义

答案 1 :(得分:3)

问题是您在页面加载后调用document.write,这有效地消除了页面的现有内容,包括嵌入式脚本。您应该使用DOM manipulation methods代替。

答案 2 :(得分: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>