【问题标题】:Back button in safari browser brokenSafari浏览器的后退按钮坏了
【发布时间】:2016-02-09 18:17:00
【问题描述】:

我在这里阅读了几个关于后退按钮与 Safari 不兼容的问题,但我没有遇到特定类型的问题。现在我有

<a id="back_btn" onclick="" href="javascript:Application.goBack();void(0);">

我试图完成的是有一个后退按钮。这适用于除 Safari 之外的所有设备(新版本,例如我正在测试 9.0)。我已经尝试过:

<a id="back_btn" onclick="" href="javascript:history.go(-1);">

以及我在其他类似问题中读到的许多其他变体,但它们似乎也不起作用。

现在问题来了。所有这一切都发生在 iframe 中,并且 url 根本没有改变(而内容却发生了变化(就像在其他浏览器上一样))。我还注意到,当我第一次点击按钮时,它会执行某些操作,因为浏览器的后退按钮变为活动状态,但问题是内容没有改变。就像它试图返回(并且可能会返回),但它不会改变 iframe 的内容。

编辑:我可能发现了问题所在,但我不完全确定如何解决它。 问题是我有一个客户端在 iframe 中使用域 url = X 打开我的网站。但是客户的网址与我的不同。一旦我打开我的 iframe 后退按钮按预期工作。有人能解释一下这里发生了什么吗?

【问题讨论】:

    标签: javascript iframe safari


    【解决方案1】:

    见手册http://www.w3schools.com/jsref/met_his_back.asp

     <button onclick="goBack()">Go Back</button>
    
    <script>
    function goBack() {
        window.history.back();
    }
    </script>
    

    【讨论】:

    • 这不起作用:/问题不在于我所说的我使用的方法
    • 将它用于标准窗口 obj!如果需要 iframe 使用:function navFrame(id, url) { var w = document.getElementById(id) w.contentWindow.location.replace(url) } 或尝试 js 框架,如 jquery,以获得跨浏览器支持!
    • 你能解释一下我是什么 navFrame(id,url) 我是 javascript 和整个 DOM/iframe/web 开发的新手,在此先感谢 :)
    • 这个函数通过id打开iframe中的特定url。对于您的问题,您只需将“w.contentWindow.location.replace(url)”替换为“w.contentWindow.history.back()”,它就会在您的 iframe 中返回历史记录。只需测试,您就会找到适合您的解决方案/
    • 是的,但是 iframe 中的 url 没有改变。我的意思是,例如,我在“www.example.com/test”上,并且正在网站上导航。内容发生变化,但 url 保持不变(站点 url 和 iframe url)。在history.go(-1); 碰巧更改了按钮起作用的站点 URL 的那一刻。
    猜你喜欢
    • 2013-12-26
    • 2013-03-02
    • 2015-03-04
    • 2011-02-17
    • 1970-01-01
    • 2016-02-20
    • 2017-06-29
    • 2013-01-10
    • 2010-12-13
    相关资源
    最近更新 更多