填写另一个网站JS的表格

时间:2017-12-20 10:05:07

标签: javascript

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

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

1 个答案:

答案 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();
};