我有一个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;
}
错误
错误:访问属性"history"的权限被拒绝document.getElementById("show file").contentWindow.history.go(-1);
我不想为此寻找确切的解决方案,因为我知道跨领域的问题(另一方面,如果有任何解决方案,请告诉我)。我只想使用jQuery正确处理这些错误,以便获得更好的最终用户体验
请告知
通过在代码周围添加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) ##
}