Javascript 在HTML表单之外获取值

Javascript 在HTML表单之外获取值,javascript,jquery,html,google-chrome-extension,forms,Javascript,Jquery,Html,Google Chrome Extension,Forms,在我的content.js中,我正在编写一个新的HTML页面,其中包含var a和var b。这两个变量是在content.js中创建的,因此我可以在HTML页面中轻松使用它们。现在,当用户完成表单编辑并按下Accept按钮时,我想覆盖那些变量a和b。我有没有办法做到这一点 这是代码的一部分 var a="FName"; var b="LName"; var myWindow = window.open("Accept", "myWindow", "width=450, hei

在我的content.js中,我正在编写一个新的HTML页面,其中包含
var a
var b
。这两个变量是在content.js中创建的,因此我可以在HTML页面中轻松使用它们。现在,当用户完成表单编辑并按下Accept按钮时,我想覆盖那些变量
a
b
。我有没有办法做到这一点

这是代码的一部分

  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 
}
var a=“FName”;
var b=“LName”;
var myWindow=window.open(“接受”,“myWindow”,“宽度=450,高度=300”);
myWindow.document.write(
""+
""+
'函数closeWindow(){var x=document.getElementById(“firstname”).value alert(x);window.close();}'+
""+
""+
""+   
""+
""+
“

您将要创建一个新的潜在客户:

”+ “名字…”“+”“+”
”+ “姓氏…”“+“”+ ""+ ""+ “接受”+ “结束”+ ""+ ""+ ""+ "" ); myWindow.document.getElementById('Accept')。onclick=Accept; myWindow.document.getElementById('Close')。onclick=Close; 函数Accept(){ 警报(myWindow.document.getElementById('firstname').innerText); } 函数Close(){//do smthing }
对不起,格式化不好

当前是Accept()的输出;现在空无一人。如何获得名字输入结果

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

这将帮助您:

问题是关于“如何将变量共享到iframe中的另一个页面”,但这也适用于新窗口

i、 e:

myWindow.document.write(
"" +
"" +
'' +
'函数closeWindow(){'+
'var x=document.getElementById(“firstname”).value;'+
“警惕(x);”+
“//在这里对parent.a和parent.b做点什么,就因为你可以:”+
“家长a=”哦,你能看看吗,它很管用!“+
“parent.b=”它也很漂亮!“+
'window.close();'+
'}' +
"" +
"" +
“你的身体代码在这里,等等”+
""
);

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

您能告诉我们您想要实现什么,期望的结果是什么,如果可能的话,创建一个来复制问题。期望的结果是使用表单外的变量a和b,例如在accept函数中。但是,如果用户修改了“firstname”或“lastname”值,则必须使用输入的值更新它们的值当用户输入发生更改时,您可以设置任何您喜欢的值。我仍在试图弄清楚您试图完成的是什么,可能有一种更为简洁的方法来编写此代码…是的,我试图在输入发生更改后更改以设置a的值,但在html页面外部发出警报后,它是“”。注意:我在文章的末尾加了一些额外的行,以显示我想要得到的结果是的,马克。你能从一开始就解释一下你想做什么,这样我们就可以想出更好的方法来解决这个问题吗?您的代码现在似乎不起作用,坦率地说,感觉代码编写得很糟糕,无意冒犯,我只是想帮您。请参考所有内容:您有哪些表单、哪些字段、用户输入的内容、过程中发生的情况、您希望实现的内容等。此外,我不知道您是否需要硬编码新的HTML,但如果不需要,您可能希望尝试其中一种:。我自己从来没有使用过前端模板引擎,所以我不能给你任何基于经验的意见,但这可能会让你工作得更快。嘿,如果我的代码适合你,请不要忘记接受我的答案!我需要那些代表投票否决不好的问题和答案,你知道:PI刚刚再次检查了它,在你提供的代码示例中,在html页面内使用变量a和b,但如果这有意义的话,我实际上想在页面外使用它们。因此,在用户更新它们之后,我希望在表单关闭后使用它们。因此,这就像在main中使用iframe中的变量一样。而不是相反。为了更清楚地说明如何访问变量x,我只在html页面之外的html脚本中定义了变量x。然后您必须执行like操作并访问父级变量,如
parent.a
parent.b
。我会更新我的答案,所以我尝试了你的例子,如果我在创建HTML页面之前将var a设置为Nothing,然后在HTML脚本中将parent.a设置为Smthing,然后我会提醒(a),这会按照预期提醒Smthing。但是,我尝试在按下按钮并执行html脚本后触发的Accept()函数中再次提醒(a),但现在a又是空的:((
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>"
);