更新窗口哈希(在url)

时间:2012-07-11 19:38:30

标签: javascript hash window photo-gallery

所以我有一个图像库的js代码:

(this.settings.update_window_hash) {
        var thumb_link = this.images[this.current_index].thumb_link;
        if (thumb_link.attr("id")) {
          window.location.hash = "#image-"+ thumb_link.attr("id"); //#url
        } else {
          window.location.hash = "#image-"+ this.current_index;
        };
};

因此您可能认为这会将$ image-(int)附加到网址。所以,如果我有一个 如果选择了thir图像,则会有多个图像的图库,网址将如下所示: mysite.com/gallery.html#image-3

一切都好。但我真的不喜欢这个被附加到网址的末尾。那是有的 如果我完全删除这部分脚本会有什么问题吗?所以无论多少 当前选择的图片网址将如下所示: mysite.com/gallery.html

我已经测试过,它运行正常。但我对javascript并不是很有经验,我想要 确保我没犯错。所以 如果我完全删除这些脚本,那还可以吗?会引起任何问题吗?

非常感谢。

3 个答案:

答案 0 :(得分:1)

URL末尾的哈希值是可选的,不是必需的,因此,如果需要,可以删除该脚本(我不确定您尝试通过删除它来解决什么问题)。一般来说,如果您告诉我们您要解决的问题而不是您尝试使用的解决方案,那么您会获得更多有用的答案。

当您希望页面的URL将查看器定向到该页面上的某个子内容时,将使用哈希。如果您删除它们,您的页面仍然可以正常工作,但页面的URL将不会反映正在显示的图像。因此,如果查看者保存该URL并返回该URL或链接到该URL或任何保留对URL的引用的内容,则它将转到页面的通用版本,而不是显示特定图像的onet。这是否正常完全取决于您以及您的网页如何运作。

答案 1 :(得分:0)

只需使用:

location.replace(location.href + "#myhash");

location.replace方法会覆盖浏览器历史记录中的当前步骤。有关此操作的示例,请参阅http://prettydiff.com/slideshow/

答案 2 :(得分:0)

octothorpe之后的内容通常表示来自网页的“名称”或“id”。您可以拥有一个锚标记(<a name='thevalue'>),浏览器将通过滚动到页面上的相关部分来解释octothorpe(http://example.com#thevalue)之后的文本。

除非页面具有特殊的JavaScript以表现不同。在您的情况下,它取决于您正在编写的网页的完整功能。如果您有烟雾测试/单元测试/用例测试/其他QE测试,您应该执行这些测试以确保您的更改不会破坏任何内容。

有关标准用法的更多说明,请参阅http://www.w3schools.com/html/html_links.asp