填写另一个网站JS的表格

问题描述 投票:0回答:1

我想填写另一个网站的表格,但我有一个错误,我不明白为什么。

我的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中的函数

javascript
1个回答
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属于同一个来源时,这才有效。

编辑

你还需要等待孩子onloadwindow事件

fenetrePopup.onload = function(){
    var doc = fenetrePopup.document;
    doc.querySelector("[name='NameText']").value = "MyLogin";
    doc.querySelector("[name='NameForm']").submit();
};
© www.soinside.com 2019 - 2024. All rights reserved.