我想填写其他网站的表格,但我有错误,我不明白为什么。
我的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的函数
答案 0 :(得分:3)
未捕获的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();
};