【问题标题】:Reading URL Anchor on IE在 IE 上读取 URL 锚点
【发布时间】:2012-09-07 16:29:39
【问题描述】:

我有一个完整的页面链接到另一个页面的末尾带有锚点(例如:index.html#anchor)。在他们指向的页面上,我有一个脚本应该读取锚点指向的位置以显示某些内容。

在 Firefox 上它运行良好,但我注意到 IE 似乎从 url 的末尾删除了 #anchor,因此脚本无法抓取文本。有没有办法解决这个问题,没有任何服务器端代码?

【问题讨论】:

    标签: javascript html anchor


    【解决方案1】:

    如何获取网址?

    window.location.hash 应该是contain the contents of the hash

    【讨论】:

    • 这就是我在脚本中获取它的方式,但似乎 IE 会在加载后从 url 中删除哈希。不知道为什么,或者即使有解决方案。还是谢谢!
    【解决方案2】:

    我在 IE 6、7 和 8 中测试了以下代码,在所有情况下,警报框中都会显示正确的哈希值。

    <script type="text/javascript">
    
        function showHash() {
            var currentUrl = "" + document.location;
            var hash = "";
            var parts = currentUrl.split("#");
            if (parts.length > 1) {
                hash = parts[1];
            }
            alert("the current hash is: " + hash);
        }
    
    </script>
    
    <input type="button" value="Show Hash" onclick="javascript: showHash();" />
    

    该代码对您有用吗?

    【讨论】:

      【解决方案3】:

      window.location 是否仍然包含 IE 上的锚点,或者它是否也被删除了?如果它仍然存在,您可以使用 window.location 并在哈希上拆分:

      var whole = "" + window.location;  // location is object, make sure it's a String
      var parts = whole.split('#');
      var anchor = parts[1];
      

      【讨论】:

      • IE 似乎没有将它保存在 window.location 中。不过谢谢你的想法!
      • 恐怕这也行不通。它给出与 window.location 相同的结果
      【解决方案4】:

      就这样试试

          var url = window.location.search.substring(1)
          var arr=url.split("#")
          str=arr[1]
      

      【讨论】:

        【解决方案5】:

        这是一个有用的功能。如果没有锚点,则返回 null。 我将它放在 Util.js 中,它派上用场了:D

        function getAnchor() {
            var currentUrl = document.URL,
                urlParts   = currentUrl.split('#');
        
            return (urlParts.length > 1) ? urlParts[1] : null;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-09-25
          • 1970-01-01
          • 1970-01-01
          • 2011-01-09
          • 2015-11-07
          • 1970-01-01
          • 2011-05-14
          相关资源
          最近更新 更多