我有一个页面,其中包含指向另一个页面的链接到最后的锚点(如下所示:index.html#anchor)。在他们指向的页面上,我有一个脚本,应该读取锚指向的位置以显示内容。
在Firefox上它运行得很好但是我注意到IE似乎从URL的末尾删除了#anchor,所以脚本无法抓取文本。有没有办法解决这个问题,没有任何服务器端代码?
答案 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;
}