我有一个生成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);
}
答案 0 :(得分:0)
您需要使用类似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);
注意:这显然只有在您可以修改正在打开的窗口的来源时才有效。