使用iframe的改变时,地址栏(Changing address bar when using i

2019-07-30 15:23发布

有没有使用iframe的方式,但还是有一下什么是iframe来了页面实际上是内部时,地址栏的变化? 我想有在页面的顶部有一个音乐播放器,让音乐播放,同时浏览该网站的一个单杠。 但我也希望人们能够轻松地书签的网页也是如此。

我已经搜查,但找不到答案。 许多人只是希望改变这就是URL被加载在iframe ......不是我想要的。 我想在浏览器更新显示的实际地址栏。

Answer 1:

这句话在这里帮助我达到30个字符的最小。 忽略此读下句的回答:

没有。

更新:

“改变”和“重定向”是两个不同的东西。 你需要弄清楚它是。 “改变”地址栏是不可能的。 “重定向”是可能的。

点击一个标准链接从一个iframe内不会影响自己的顶层窗口。 一个Javascript的一个简单的例子在iframe中重定向会是这样的:

顶部窗户:

<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可以强制最顶层的框架重定向。

我会极力阻止以任何方式靠这个。 这是一般草率的编程,我会从内部框架完全可能的话望而却步。



Answer 2:

是的,你可以,但它不是一个简单的解决方案,它有一定的局限性

改变

您可以使用的Web API的消息历史API合力得到你想要的东西。

的jsfiddle

重定向

你可以用上面的例子,并用替换推动历史window.location.replace

请考虑片断的提示得到你想要的。 以上未经过深思熟虑,对安全的例子(即IFRAME脚本发送消息到父,不管其来源)。



文章来源: Changing address bar when using iframe
标签: url iframe