我有两个html文件(Certificate1.html和Certificate2.html),它们都引用相同的JavaScript文件。 Certificate1.html调用一个JavaScript函数,它从HTML文件中获取信息,打开一个新窗口,并分配信息到第二个窗口是这样的:Chrome:通过window.open传递JavaScript变量
function passName() {
var FirstN = document.frmUserName.inFirstN.value;
var LastN = document.frmUserName.inLastN.value;
var CourseN = $('.sCourse').text();
var CourseHrs = $('.sNumHrs').text();
var CourseNum = $('.sNum').text();
var Cert = window.open("Certificate2.html");
Cert.FirstN = FirstN;
Cert.LastN = LastN;
Cert.CourseN = CourseN;
Cert.CourseHrs = CourseHrs;
Cert.CourseNum = CourseNum;
}
Certificate2.html然后调用另一个函数,该设置将信息在正确的位置:
function placeName() {
document.getElementById("sUserName").innerHTML = FirstN + " " + LastN;
document.getElementById("pCourseName").innerHTML = CourseN;
document.getElementById("sHrs").innerHTML = CourseHrs;
document.getElementById("sNum").innerHTML = CourseNum;
}
现在,这一切都在Firefox和IE9完美的作品,但不是在Chrome中。当我在Chrome中运行它时,我没有发现任何明显的错误,但是当我检查F12时,有一个错误提示FirstN未定义。
Chrome是否处理JavaScript变量的方式与其他浏览器不同?这是怎么回事?
感谢, 克里斯汀
这不是JavaScript变量不同,它是对'window'对象的处理 - 特别是通过'Cert'引用(这是“external”窗口对象)添加到窗口的属性是否显示在弹出窗口中的“窗口”对象上(这是“内部”窗口对象)。这也可能归因于同源策略生效时的差异(例如,您在打开文档之后立即访问窗口*,当文档尚未加载时; Chrome可能需要您等待'负载'事件首先,但这是猜测)。 – 2013-04-30 13:28:19