使用Jquery for ContentWindow错误处理跨域错误

时间:2013-08-12 10:16:51

标签: jquery cross-domain

我在父窗口中有一个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正确处理这些错误,以便获得更好的最终用户体验。

请提供建议

1 个答案:

答案 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) ##            
}