是否有一种使用iframe的方法,但在单击iframe内部的内容时,仍然会更改地址栏以了解页面的实际情况?我想有一个水平的酒吧在页面顶部与音乐播放器,允许音乐播放,同时浏览网站。但我也希望人们能够很容易的书签,以及网页。
我找过了,但找不到答案。许多人只是想改变在iframe中加载的URL .这不是我想要的。我想要更新浏览器中显示的实际地址栏。
发布于 2012-07-26 03:17:53
这句话是为了帮助我达到至少30个字符。忽略这一点,阅读下一句你的答案:
不是的。
更新:
“改变”和“重定向”是两件不同的事情。你需要弄清楚它是哪一种。“更改”地址栏是不可能的。“重定向”是可能的。
从iframe中单击标准链接不会影响其本身的最顶层窗口。在iframe中重定向Javascript的一个快速示例如下所示:
顶部窗口:
<html>
<head></head>
<body>
<iframe src="http://yoursite.com/iframe_test.html" />
</body>IFRAME试验:
<html>
<head>
<script>
window.onload = ready;
function ready()
{
document.getElementById("link1").onclick = linkClick;
document.getElementById("link2").onclick = linkClick;
}
function linkClick(e)
{
e.preventDefault();
window.top.location.href = this.href;
}
</script>
</head>
<body>
<a id="link1" href="http://youtube.com">Link1</a>
<a id="link2" href="http://facebook.com">Link2</a>
</body>解释:
如果Javascript没有到位,当您单击iframe中的链接时会发生的情况是,您将保留在原始页面上,而iframe将被重定向到您单击的链接。以这种方式在iframe中使用Javascript可以强制最顶层的帧重定向。
我强烈反对以任何方式依赖这一点。一般来说,这是一种草率的编程,如果可能的话,我会完全远离iframes。
发布于 2016-07-23 11:21:54
是的,你可以,但这不是一个简单的解决方案,它有一些限制
改变
您可以在一起使用https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage和https://developer.mozilla.org/en-US/docs/Web/API/History_API来获得您想要的东西。
示例
重定向
您可以使用上面的示例并用window.location.replace替换推送历史记录。
请把这个片段当作得到你想要的东西的提示。上面的示例对于安全性考虑不充分(例如,iframe脚本将消息发送给父服务器,而不管消息的来源如何)。
https://stackoverflow.com/questions/11661814
复制相似问题