我在父窗口中有一个iframe和一个后退按钮。我希望后退按钮与浏览器历史记录按钮完全一致。问题在于跨域。如果我单击打开另一个域页面,那么我的代码会抛出错误。
这是我的代码
## Initialization code ##
window.iFrameChanges = -1; //will get incremented to 0 on first page load
## iframe on load event ##
function iframeOnLoad() {
window.iFrameChanges+=1;
}
## Back button - click event ##
if(window.iFrameChanges > 1) {
document.getElementById("show-file").contentWindow.history.go(-1);
}else {
window.iFrameChanges = -1;
}
错误
错误:访问属性“历史记录”的权限被拒绝 的document.getElementById( “显示文件”)contentWindow.history.go(-1);
我不是在寻找一个确切的解决方案,因为我知道跨域问题(另一方面,如果有任何sol。请告诉我)。我只想使用jQuery正确处理这些错误,以便获得更好的最终用户体验。
请提供建议
答案 0 :(得分:0)
通过在代码周围添加try catch来解决
try {
document.getElementById("show-file").contentWindow.history.go(-1);
window.iFrameChanges -= 1;
}
catch(err) {
window.iFrameChanges = -1;
## code to show message to user (if required) ##
}