使用JavaScript更改页面被添加书签时使用的URL
不允许您在不触发重新加载的情况下更新使用JavaScript更改页面被添加书签时使用的URL,javascript,url,bookmarks,Javascript,Url,Bookmarks,不允许您在不触发重新加载的情况下更新窗口位置。虽然我原则上同意这一政策(不可能访问我的网站并让JavaScript将位置栏更改为www.yourbankingsite.com),但我认为应该可以将www.foo.org/index更改为www.foo.org/help 我关心这个的唯一原因是为了书签。我正在使用照片浏览器,当用户预览特定图像时,我希望该图像成为默认图像,如果他们应该将该页面作为书签。例如,如果他们正在查看foo.org/preview/images0-30,并单击图像#15,则该
窗口位置。虽然我原则上同意这一政策(不可能访问我的网站并让JavaScript将位置栏更改为www.yourbankingsite.com
),但我认为应该可以将www.foo.org/index
更改为www.foo.org/help
我关心这个的唯一原因是为了书签。我正在使用照片浏览器,当用户预览特定图像时,我希望该图像成为默认图像,如果他们应该将该页面作为书签。例如,如果他们正在查看foo.org/preview/images0-30
,并单击图像#15,则该图像将展开为中等大小的视图。如果他们随后为页面添加书签,我希望书签URL为foo.org/preview/images0-30/active15
有什么想法吗,或者这一点上也有安全屏障吗?我当然可以理解这里应用的相同策略,但你可以做梦。你可以在页面上添加[add to Favorites]
按钮
样本:
或者使用以下jQuery插件之一:
和/或
使用URL并在末尾使用散列,然后根据该散列值加载内容(图像等)
function onLoad() {
if (window.location.hash == "image1") {
// load image1
}
}
还有很多用于处理URL哈希事件的jQuery插件,例如:
还有很多非jQuery JavaScript库,例如:
如果URL包含哈希值,如何在页面加载时检测该URL,如果包含哈希值,则将其定向到您希望其访问的页面?您可以在不重新加载页面的情况下向URL添加锚定,并使用javascript获取该锚定:
location.href = '.../#' + imageId;
如前所述,对于ajaxy站点,通常需要操纵/检查URL的散列部分(window.location.hash
)来确定此类活动
最大的问题是确保检查DOM就绪/窗口加载中的哈希,就像用户单击给定的图像一样。这将适用于浏览器和书签,但可能会妨碍搜索索引。听起来您应该签出。这就是谷歌(比如Gmail)允许任何页面都可以添加书签(并且有历史记录),但不刷新整个页面的方式
至于事情的另一面(让人们访问你的网站,然后自动弹出正确的图像),我会尝试在页面加载后检查window.location.hash并基于此触发事件。
<html>
<head>
<script type="text/javascript">
function myHref(){
document.getElementById('myAnchor').innerHTML="Visit Google"
document.getElementById('myAnchor').href="http://www.google.com"
}
</script>
</head>
<body>
<a id="myAnchor" href="http://www.java2s.com">Visit Java2s</a>
<form>
<input type="button" onclick="myHref()" value="Change URL and text">
</form>
</body>
</html>
函数myHref(){
document.getElementById('myAnchor').innerHTML=“访问谷歌”
document.getElementById('myAnchor')。href=”http://www.google.com"
}
<html>
<head>
<script type="text/javascript">
function myHref(){
document.getElementById('myAnchor').innerHTML="Visit Google"
document.getElementById('myAnchor').href="http://www.google.com"
}
</script>
</head>
<body>
<a id="myAnchor" href="http://www.java2s.com">Visit Java2s</a>
<form>
<input type="button" onclick="myHref()" value="Change URL and text">
</form>
</body>
</html>