获取HTML表单之外的值

时间:2015-11-19 11:53:02

标签: javascript jquery html google-chrome-extension html-form

在我的content.js内部我正在编写一个包含预先存储形式的新HTML页面,其中包含var avar b。这两个变量是在content.js之前创建的,所以我可以在HTML页面中轻松使用它们。现在,我希望在用户完成编辑表单并按下“接受”按钮时覆盖这些变量ab。无论如何我能做到这一点吗?

这是代码的一部分

  var a="FName";
   var b="LName";
    var myWindow = window.open("Accept", "myWindow", "width=450, height=300");
     myWindow.document.write(


"<html>"+
   "<head>"+
   '<script> function closeWindow(){ var x = document.getElementById("firstname").value alert(x); window.close();}'+

 "</script>"+

 "</head>"+
  "<body>"+   
      "<form>"+
       "<div id=leadinformation>"+
        "<p id=titleParagraph>You are about to create a new Lead:</p>"+
         "First Name....."+ "<input type=text id=firstname value="+a+">" +"<br>"+
         "Last Name....."+ "<input type=text id=lastname value="+b+">" +
        "</div>"+

         "<div>"+
          "<button id=Accept onClick=closeWindow() >Accept</button>"+
          "<button id=Close onClick=closeWindow() >Close</button>"+
        "</div>"+
      "</form>"+
   "</body>"+
  "<html>" 
);

myWindow.document.getElementById('Accept').onclick=Accept;
myWindow.document.getElementById('Close').onclick=Close;

    function Accept(){   
alert(myWindow.document.getElementById('firstname').innerText);
}  
    function Close() {//do smthing 
}

抱歉结构不好。

目前输出的Accept();此刻是空的。如何获得名字输入结果?

我想要实现的目标: 1)我正在页面上创建一个按钮
2)当我点击按钮时,会弹出一个新的html页面(我硬编码的那个页面) 3)我预先填写表格,其中包含我之前创建的一些变量 4)当单击表单上的“接受”按钮时,将触发Accept()函数,我希望使用用户编写的那些输入值。

1 个答案:

答案 0 :(得分:2)

这可以帮助您:Sharing global javascript variable of a page (...)

问题是&#34;如何将变量分享到iframe中的另一个页面&#34;,但这也适用于新窗口。

即:

myWindow.document.write(
  "<html>" +
    "<head>" +
      '<script>' +
        'function closeWindow(){' +
          'var x = document.getElementById("firstname").value;' +
          'alert(x);' +
          '// do something to parent.a and parent.b here, just because you can:' +
          'parent.a = "Oh, would you look at it, it works!";' +
          'parent.b = "And it is so pretty too!";' +
          'window.close();' +
        '}' +

      "</script>" +

    "</head>" +
    " Your body code here, etc " +
  "</html>"
);

此外,请注意,在新窗口的JavaScript代码中将值插入;后,您的代码缺少分号(var x)。这很可能会使您的代码出现故障。结束</html>标签缺少斜线,但我不知道是否会破坏任何东西;你也可以更好地解决这个问题,以防万一。