У меня есть два html-файла (Certificate1.html и Certificate2.html), которые ссылаются на один и тот же файл JavaScript. Certificate1.html вызывает одну функцию JavaScript, которая принимает информацию из HTML-файла, открывает новое окно, и присваивает информацию второго окна, как это:Chrome: передать переменную JavaScript через window.open
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, отличные от других браузеров? Что происходит?
Спасибо, Kristin
Это не переменные JavaScript, которые отличаются друг от друга, это обработка объекта 'window' - и, в частности, появляются ли свойства, которые вы добавляете в окно через вашу ссылку« Cert »(которая относится к« внешнему »объекту окна) на объекте 'window' во всплывающем окне (который является« внутренним »объектом окна). Это также может быть связано с различиями в том, когда действует одна и та же исходная политика (например, вы сразу открываете окно * сразу после ее открытия, когда документ еще не загружен, вам может потребоваться Chrome, чтобы сначала «load», но это спекуляция). –