【问题标题】:Html button with location.href and document.referrer together带有 location.href 和 document.referrer 的 Html 按钮
【发布时间】:2014-03-11 12:41:02
【问题描述】:

我正在努力完成这项工作

<script>
document.write('<button onclick="location.href=' + document.referrer + '">Go back</button>');
</script>

它应该只是一个简单的“返回”按钮到上一页。 当我像“a href”那样做时,它会起作用

<script>
    document.write('<a href="' + document.referrer + '">Go back</a>');
</script>

但是当尝试将它作为“按钮”时它失败了。按钮在那里,但没有导航到上一页

【问题讨论】:

  • 我认为问题在于括号和引号......请帮助:)

标签: javascript html location href referrer


【解决方案1】:

在 href 正文中添加另一个转义引号(以及最后的分号,虽然我不知道这是否会有所不同),看看是否有效......

<script>
document.write('<button onclick="location.href=\'' + document.referrer + '\';">Go back</button>');
</script>

【讨论】:

    【解决方案2】:

    您还可以使用以下方式实现原生返回:

    window.history.back();
    //in your onclick="history.back()"
    //also can try with:
    //javascript:history.go(-1)">
    

    或者调用一个函数来检查 history.back() 在浏览器中是否可用,否则实现一个自定义的返回函数/代码,如此处所示(我宁愿从 html 中取出代码,只处理我的 onclick函数)

    Using javascript history.back() fails in Safari .. how do I make it cross-browser?

    要获得稳健的解决方案,请检查 history.js:

    https://github.com/browserstate/history.js

    【讨论】:

      【解决方案3】:

      您在 href 中缺少 URL 周围的引号,因此请尝试像这样转义它(对我有用)

      document.write('&lt;button onclick="location.href=\'' + document.referrer + '\'"&gt;Go back&lt;/button&gt;');

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-21
        • 2013-03-02
        • 2012-06-07
        • 2017-09-09
        相关资源
        最近更新 更多