2012-07-11 42 views
0

所以我有这个js代码的图片库:更新窗口哈希(在URL)

(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; 
     }; 
}; 

所以你可能已经假定这个追加$图像 - (INT)的URL。所以,如果我有一个 画廊多个图像如果锡尔图像被选择的URL看起来像这样: mysite.com/gallery.html#image-3

都很好。但我真的不喜欢这个被追加到URL的末尾。那么如果我完全删除脚本的这部分内容,是否有任何问题 ?因此,无论目前选择的 图片的数量如何,网址将如下所示: mysite.com/gallery.html

我测试过它,它的工作原理没问题。但我对JavaScript并不是很有经验,我想要 以确保我没有犯错。所以 是的,如果我完全删除这个脚本?它会导致任何问题吗?

巨大的感谢。

+1

只要你不从你的代码中的URL读取散列,你应该很好。 – 2012-07-11 19:40:10

回答

1

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

当您希望页面的URL将浏览器定向到该页面上的某个子内容时,会使用散列。如果您将其移除,那么您的网页仍然可以正常工作,但该网页的网址不会反映显示哪个图片。因此,如果查看者保存该URL并返回到该URL或链接到该URL或任何可以引用该URL的内容,它将转到该页面的通用版本,而不是显示特定图像的onet。是否确定完全取决于您以及您的网页的工作方式。

+0

你好。那么回应我的问题。我真的不希望他们在网址中,因为他们在我的情况下是无用的。 js是图库/图像滑块的一部分,url只显示当前选择的图像,所以我没有在网页或其他地方使用它(它可以帮助导航到页面的所需部分)。感谢您的支持回答。 – inrob 2012-07-11 20:41:54

0

只需使用:

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

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

+0

是的,我知道这一点。但正如我所说,因为我是js的新手,只是想确保我没有做错任何事情。 – inrob 2012-07-11 20:43:54

0

octothorpe之后的东西通常表示网页中的“名称”或“id”。您可以使用锚标签(<a name='thevalue'>),浏览器将通过滚动到页面上的关联部分来解释八脚形(http://example.com#thevalue)之后的文本。

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

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

+0

感谢您的回答。 – inrob 2012-07-11 20:42:48