【发布时间】:2012-09-07 16:29:39
【问题描述】:
我有一个完整的页面链接到另一个页面的末尾带有锚点(例如:index.html#anchor)。在他们指向的页面上,我有一个脚本应该读取锚点指向的位置以显示某些内容。
在 Firefox 上它运行良好,但我注意到 IE 似乎从 url 的末尾删除了 #anchor,因此脚本无法抓取文本。有没有办法解决这个问题,没有任何服务器端代码?
【问题讨论】:
标签: javascript html anchor
我有一个完整的页面链接到另一个页面的末尾带有锚点(例如:index.html#anchor)。在他们指向的页面上,我有一个脚本应该读取锚点指向的位置以显示某些内容。
在 Firefox 上它运行良好,但我注意到 IE 似乎从 url 的末尾删除了 #anchor,因此脚本无法抓取文本。有没有办法解决这个问题,没有任何服务器端代码?
【问题讨论】:
标签: javascript html anchor
如何获取网址?
window.location.hash 应该是contain the contents of the hash。
【讨论】:
我在 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();" />
该代码对您有用吗?
【讨论】:
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];
【讨论】:
就这样试试
var url = window.location.search.substring(1)
var arr=url.split("#")
str=arr[1]
【讨论】:
这是一个有用的功能。如果没有锚点,则返回 null。 我将它放在 Util.js 中,它派上用场了:D
function getAnchor() {
var currentUrl = document.URL,
urlParts = currentUrl.split('#');
return (urlParts.length > 1) ? urlParts[1] : null;
}
【讨论】: