在我的content.js内部我正在编写一个包含预先存储形式的新HTML页面,其中包含var a
和var b
。这两个变量是在content.js之前创建的,所以我可以在HTML页面中轻松使用它们。现在,我希望在用户完成编辑表单并按下“接受”按钮时覆盖这些变量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
}
抱歉结构不好。
目前输出的Accept();此刻是空的。如何获得名字输入结果?
我想要实现的目标:
1)我正在页面上创建一个按钮
2)当我点击按钮时,会弹出一个新的html页面(我硬编码的那个页面)
3)我预先填写表格,其中包含我之前创建的一些变量
4)当单击表单上的“接受”按钮时,将触发Accept()函数,我希望使用用户编写的那些输入值。
答案 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>
标签缺少斜线,但我不知道是否会破坏任何东西;你也可以更好地解决这个问题,以防万一。