更新窗口哈希(位于url)

Update window hash (at url)

本文关键字:url 位于 窗口 哈希 更新      更新时间:2023-09-26

所以我有一个图像库的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)附加到url中。所以如果我有带有多个图像的图库如果选择了第三个图像,url将如下所示:mysite.com/gallery.html#image-3

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

我测试过了,效果还可以。但我对javascript不是很有经验,我想要以确保我没有犯错误。所以如果我完全删除这个脚本可以吗?它会引起什么问题吗

非常感谢。

URL末尾的哈希是可选的,不是必需的,所以是的,如果你愿意,你可以删除该脚本(我不确定你想通过删除它来解决什么问题)。一般来说,如果你告诉我们你试图解决什么问题,而不是你试图使用什么解决方案,你会得到更有用的答案。

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

只需使用:

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

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

octhorpe后面的东西通常表示网页中的"名称"或"id"。您可以有一个锚定标记(<a name='thevalue'>),浏览器将通过滚动到页面上的相关部分来解释八通符(http://example.com#thevalue)之后的文本。

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

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