我想填写另一个网站的表格,但我有一个错误,我不明白为什么。
我的JS的功能:
<script type="text/javascript">
function rempliFormulair(url) {
var fenetrePopup = window.open(url);
fenetrePopup.getElementsByName("NameText").value = "MyLogin";
fenetrePopup.getElementsByName("NameForm").submit();
}
</script>
有我的表格:
<form name = "NameForm" class="" action="index.html" method="post">
<input id = "idText" type="text" name="NameText" value="">
<input id = "azee" type="submit" name="submit" value="aze">
</form>
我的错误:
未捕获的TypeError:fenetrePopup.getElementsByName不是rempliFormulair中的函数
未捕获的TypeError:fenetrePopup.getElementsByName不是rempliFormulair中的函数
fenetrePopup
是pop-window对象的引用。您需要访问相同的document
对象。此外,您只能访问文档if the origin is same。
其次,getElementsByName
返回NodeList
,
尝试
fenetrePopup.document.getElementsByName("NameText")[0].value = "MyLogin";
fenetrePopup.document.getElementsByName("NameForm")[0].submit();
或使用querySelector
var doc = fenetrePopup.document;
doc.querySelector("[name='NameText']").value = "MyLogin";
doc.querySelector("[name='NameForm']").submit();
注意
只有当url
属于同一个来源时,这才有效。
编辑
你还需要等待孩子onload
的window
事件
fenetrePopup.onload = function(){
var doc = fenetrePopup.document;
doc.querySelector("[name='NameText']").value = "MyLogin";
doc.querySelector("[name='NameForm']").submit();
};