使用Jquery对ContentWindow错误进行跨域错误处理



我有一个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) ##            
}

相关内容

  • 没有找到相关文章

最新更新