Javascript:body onload事件,变量存在,但之后,它将变为未定义
这是我能创造的最好的例子。innerHTML的值出现在由onload函数触发的警报中。当它点击document.write时,相同的innerHTML将变为null。关于如何让innerHTML显示在onload函数之外,有什么想法吗?我尝试过全局变量,甚至将值复制到隐藏的输入,结果仍然是空的Javascript:body onload事件,变量存在,但之后,它将变为未定义,javascript,Javascript,这是我能创造的最好的例子。innerHTML的值出现在由onload函数触发的警报中。当它点击document.write时,相同的innerHTML将变为null。关于如何让innerHTML显示在onload函数之外,有什么想法吗?我尝试过全局变量,甚至将值复制到隐藏的输入,结果仍然是空的 <html> <head> <script language='javascript'> function onload_function() { alert
<html>
<head>
<script language='javascript'>
function onload_function() {
alert(document.getElementById("sample_size").innerHTML);
}
document.write("this is a test: " + document.getElementById("sample_size").innerHTML);
</script>
</head>
<body onload='onload_function()'>
<form name='form_test'>
<table border='0' cellpadding='0' cellspacing='0'>
<tr>
<td id='sample_size' style='display:none'>16</td>
</tr>
</table>
</form>
</body>
</html>
函数onload_函数(){
警报(document.getElementById(“示例大小”).innerHTML);
}
document.write(“这是一个测试:”+document.getElementById(“sample_size”).innerHTML);
16
不要使用全局变量,尝试将其放入具有唯一id的隐藏输入元素中,这样您就可以使用另一个函数使用getElementByID
获取它。如果没有源代码,我们将无法真正帮助您
这里有三种可能性
该变量实际上可能不是全局变量。您是否在函数中使用
var
关键字声明它
变量可能被分配到其他地方的未定义的
你可能把它的名字弄错了
检查中的DOM选项卡,查看变量是否存在及其值。您应该尝试添加脚本:
<script language='javascript'>
document.write("this is a test: " + document.getElementById("sample_size").innerHTML);
</script>
document.write(“这是一个测试:”+document.getElementById(“sample_size”).innerHTML);
在HTML
中,而不是在
中。在标头中计算javascript时,值/页面尚未加载 您不能在onload
之外写入td
的innerHTML
,因为td
在onload
触发之前不存在
如果您将调用放入文档,则此功能有效。在onload函数中写入:
<script language='javascript'>
function onload_function() {
alert(document.getElementById("sample_size").innerHTML);
document.write("this is a test: " + document.getElementById("sample_size").innerHTML);
}
</script>
函数onload_函数(){
警报(document.getElementById(“示例大小”).innerHTML);
document.write(“这是一个测试:”+document.getElementById(“sample_size”).innerHTML);
}
请给我们看源代码。这是个可怕的主意。您正在用设计方面的问题来交换一个非常缓慢的(相比之下)解决方案实现,这无疑只是一个小问题。现在他已经添加了源代码,我还有其他事情要做。谢谢你的否决票。