首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用iframe时更改地址栏

问使用iframe时更改地址栏
EN

Stack Overflow用户
提问于 2012-07-26 03:12:58
回答 2查看 6.7K关注 0票数 3

是否有一种使用iframe的方法,但在单击iframe内部的内容时,仍然会更改地址栏以了解页面的实际情况?我想有一个水平的酒吧在页面顶部与音乐播放器,允许音乐播放,同时浏览网站。但我也希望人们能够很容易的书签,以及网页。

我找过了,但找不到答案。许多人只是想改变在iframe中加载的URL .这不是我想要的。我想要更新浏览器中显示的实际地址栏。

EN

回答 2

Stack Overflow用户

发布于 2012-07-26 03:17:53

这句话是为了帮助我达到至少30个字符。忽略这一点,阅读下一句你的答案:

不是的。

更新:

“改变”和“重定向”是两件不同的事情。你需要弄清楚它是哪一种。“更改”地址栏是不可能的。“重定向”是可能的。

从iframe中单击标准链接不会影响其本身的最顶层窗口。在iframe中重定向Javascript的一个快速示例如下所示:

顶部窗口:

代码语言:javascript
复制
<html>
<head></head>
<body>
    <iframe src="http://yoursite.com/iframe_test.html" />
</body>

IFRAME试验:

代码语言:javascript
复制
<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。

票数 2
EN

Stack Overflow用户

发布于 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脚本将消息发送给父服务器,而不管消息的来源如何)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11661814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档