我有一个生成PDF的servlet,输出转到一个新的浏览器窗口。我试图使用下面的updateTitle()函数替换这个新窗口的标题。但是,当我试图将报表名称(repName)分配给窗口实例时,IE11会抛出一个“拒绝权限”错误。有什么想法吗?
function showReport(url, repName){
var repWin = window.open(url);
updateTitle(repWin, repName)
}
function updateTitle(repWin, repName) {
setTimeout(function() {
repWin.document.title = repName; //IE11 console throws PERMISSION DENIED here
}, 3000);
}发布于 2014-11-07 21:58:49
您需要使用类似于postMessage的东西。
在你原来的窗户上:
function showReport(url, repName) {
var repWin = window.open(url);
repWin.postMessage('setTitle:' + repName, '*');
}论repWin
function updateTitle(message) {
var m = message.data.split(':'),
eventType = m[0],
data = m[1];
if (message.origin === 'YOUR_URL_HERE' && eventType === 'setTitle' ) {
repWin.document.title = data;
}
}
window.addEventListener("message", updateTitle, false);注意:显然,只有当您可以修改打开的窗口的源代码时,才能正常工作。
https://stackoverflow.com/questions/26810487
复制相似问题