在IE上阅读URL Anchor

时间:2010-04-29 23:37:59

标签: javascript html anchor

我有一个页面,其中包含指向另一个页面的链接到最后的锚点(如下所示:index.html#anchor)。在他们指向的页面上,我有一个脚本,应该读取锚指向的位置以显示内容。

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

5 个答案:

答案 0 :(得分:5)

如何获取网址?

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

答案 1 :(得分: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();" />

该代码是否适合您?

答案 2 :(得分:0)

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];

答案 3 :(得分:0)

试试这个

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

答案 4 :(得分:0)

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

function getAnchor() {
    var currentUrl = document.URL,
        urlParts   = currentUrl.split('#');

    return (urlParts.length > 1) ? urlParts[1] : null;
}