我有两个HTML文件,FirstWindow和SecondWindow。 FirstWindow的脚本为FirstWindowJS.js,SecondWindow的脚本为SecondWindowJS.js。

通过FirstWindowJS.js,我打开SecondWindow.html。但是,我无法为其创建元素。这是代码以及问题-

FirstWindow.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>FirstWindow</title>
</head>
<body>
<script type="text/javascript" src="FirstWindowJS.js"></script>
</body>
</html>


SecondWindow.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>SecondWindow</title>
</head>
<body>
<script type="text/javascript" src="SecondWindowJS.js"></script>
</body>
</html>


FirstWindowJS.js

main();

function main()
{
    var myWindow = window.open("SecondWindow.html", "My Window",
    "resizable=0,width=700,height=600");

    var e = myWindow.document.createElement("currentUserElement");
    e.setAttribute("id", "currentUserElement");
    e.setAttribute("value","John");
}


SecondWindowJS.js

main();

function main()
{
     var e = document.getElementById("currentUserElement");
     var value = e.getAttribute("value");
     console.log("value = "+value);
}


我在SecondWindowJS.js中遇到的错误是-

TypeError: e is null


为什么“ e”为空?怎么了

最佳答案

在打开程序的脚本继续执行之前,新窗口可能会运行其JavaScript,但是您更有可能无法在尚未附加到文档的元素上使用getElementById

myWindow.document.body.appendChild(e);

关于javascript - document.createElement在新窗口中失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13369113/

10-16 10:47