我正在使用以下window.open(url与当前页面的主机/域相同):
function openWindow() {
var fswin = window.open(url, msg);
$(fswin.document).ready(function () {
setWindowTitle(fswin, msg) //set window title
});
}
有时我收到错误null / undefined尝试设置下面的title或fs_date值:
function setWindowTitle(fswin, fs_date) {
if ((fswin.document.title !== undefined) && (fswin.document.getElementById("fs_date") !== undefined))
{
fswin.document.title = fs_date;
fswin.document.getElementById("fs_date").value = fs_date;
}
else //if not loaded yet wait a 50ms then try again
{
setTimeout(setWindowTitle, 50); //wait 50ms and check again
}
}
这是一种间歇性的错误,有时不是其他时间; 在我看来,我不能使用setTimeout(setWindowTitle,50),因为它不会将require参数传递给setWindow(fswin,fs_date)?也许这是问题,它有时会触及setTimeout(...),因此不会传入fswin和fs_date?
我做错了什么,如何解决?
答案 0 :(得分:2)
.ready()
方法并不关心它所绑定的元素,它始终在当前文档上运行。
将load
事件用于其他元素。
$(fswin).on("load", function() {
setWindowTitle(fswin, msg);
});