0

所以我有一个图片库的这个 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 的末尾。那么如果我完全删除这部分脚本有什么问题吗?因此,无论当前选择多少图片,网址都将如下所示:mysite.com/gallery.html

我已经测试过了,它工作正常。但我对 javascript 不是很有经验,我想确保我没有犯错。如果我 完全删除这个脚本可以吗?它会引起任何问题吗?

非常感谢。

4

3 回答 3

1

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

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

于 2012-07-11T19:51:41.407 回答
0

只需使用:

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

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

于 2012-07-11T19:41:30.847 回答
0

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

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

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

于 2012-07-11T20:06:35.987 回答