5

当我调用我的 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>
4

3 回答 3

4

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

于 2012-04-07T17:22:46.757 回答
3

问题是您document.write在页面加载后调用,这有效地清除了页面的现有内容,包括嵌入的脚本。您应该改用DOM 操作方法

于 2012-04-07T17:26:03.253 回答
2

试试这个:

<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>
于 2012-04-07T18:03:22.593 回答