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