我正在尝试在新打开的窗口中获取一个元素(或者在我的情况下为tab),但我不能这样做。
我的想法是在加载后立即打开网站,输入我的用户名和密码进行登录。
我尝试了以下代码:
var site = open("site url");
user = site.document.getElementById("username");
user.value = "myUsername";
控制台显示错误:
未捕获的TypeError:无法将属性'value'设置为null。
我尝试使用setTimeout
和.onload
,但它也无效
任何人都可以帮助我吗?
我知道这看起来很简单,但我刚开始用JavaScript编程,我还在学习。
答案 0 :(得分:0)
让我们考虑两个HTML文件:
openwindow.htm - 它有一个文本框和一个按钮,单击该按钮可在新的浏览器窗口中打开target.htm文件 target.htm - 这个代码可以更改打开此文件的父窗口(openwindow.htm)中存在的文本框的值
openwindow.htm:
<html>
<script language="javascript">
function openwindow()
{
window.open("target.htm","_blank","height=200,width=400,
status=yes,toolbar=no,menubar=no,location=no")
}
</script>
<body>
<form name=frm>
<input id=text1 type=text>
<input type=button onclick="javascript:openwindow()" value="Open window..">
</form>
</body>
</html>
请注意,如果未提供参数“_blank”,则IE和Firefox之间的功能会有所不同,在firefox中将打开一个新选项卡而不是新窗口。只需使用window.open(&#34; target.htm&#34;)并自己查看差异。有关window.open()方法及其参数的更多信息,请参阅http://msdn2.microsoft.com/en-us/library/ms536651(VS.85).aspx。另请注意,在id属性中,只需要在Firefox中执行target.htm(如下所示)的代码。
target.htm:
<html>
<script language="javascript">
function changeparent()
{
window.opener.document.getElementById('text1').value="Value changed.."
}
</script>
<body>
<form>
<input type=button onclick="javascript:changeparent()" value="Change opener's textbox's value..">
</form>
</body>
</html>
在这里,我已经向您展示了孩子正在访问父窗口,但您也可以这样做。