0

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

好心劝告

4

1 回答 1

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) ##            
}
于 2013-08-13T09:51:36.023 回答