Zac*_*bey 5 javascript iframe cross-browser relative-path
exampleA.com
<iframe src="http://exampleB.com/">
Run Code Online (Sandbox Code Playgroud)
exampleB.com
<button onclick="top.location='/test'">Test</button>
Run Code Online (Sandbox Code Playgroud)
在Chrome中(我假设大多数浏览器),单击iframe内的"测试"按钮会将父页面更改为exampleB.com/test,但在IE中它会设置相对于父URL(exampleA.com/test)的位置.
如何使用相对于iframe的URL在所有浏览器中使用测试按钮?
注意:
这可以在HTML中完成: <a href="/test" target="top">Test</a>如评论中所述.看到这个问题.
但是,我需要(编辑)基于JavaScript的解决方案,以便更改父位置以响应事件,而不是鼠标单击.
看起来我已经回答了我自己的问题......
exampleB.com
<button onclick="topLocation('/test')">Test</button>
<script>
var topLocation = function(url) {
// make sure its a relative url
if (url[0] === '/' && url[1] !== '/'){
// x-broswer window.location.origin
if (!window.location.origin) window.location.origin = window.location.protocol+"//"+window.location.host;
window.top.location = window.location.origin + url;
} else {
window.top.location = url;
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
我从这个SO答案中找到了获取基本URL(window.location.origin)的代码
| 归档时间: |
|
| 查看次数: |
16157 次 |
| 最近记录: |