3

JavaScript不允许您在window.location不触发重新加载的情况下进行更新。虽然我原则上同意此政策(不应该访问我的网站并让 JavaScript 将位置栏更改为 read www.yourbankingsite.com,)但我认为应该可以更改www.foo.org/indexwww.foo.org/help.

我关心这个的唯一原因是书签。我正在使用照片浏览器,当用户预览特定图像时,如果他们应该为该页面添加书签,我希望该图像成为默认图像。例如,如果他们正在查看foo.org/preview/images0-30并单击图像 #15,则该图像将扩展为中等大小的视图。如果他们随后为页面添加书签,我希望书签 URL 为foo.org/preview/images0-30/active15.

有什么想法吗,或者这个也有安全屏障?我当然可以理解这里采用的相同政策,但可以梦想。

4

6 回答 6

4

听起来你应该看看真正简单的历史。这就是谷歌(例如,Gmail)允许任何页面被收藏(并且有历史)但不刷新整个页面的方式。

至于事情的另一面(让人们访问您的网站然后自动弹出正确的图像),一旦页面加载并基于此触发事件,我会尝试检查window.location.hash 。

于 2009-04-01T17:30:48.123 回答
1

您可以在不重新加载页面的情况下将锚点添加到 URL 并使用 javascript 获取它:

location.href = '.../#' + imageId;
于 2009-04-01T17:21:42.093 回答
1

如前所述,通常对于 ajaxy 站点,您可以操纵/检查 URL ( window.location.hash) 的哈希部分来确定这种活动。

最大的问题是确保检查 DOM-ready/window-load 中的哈希,就好像用户点击了给定的图像一样。这将适用于浏览器和书签,但可能会妨碍搜索索引。

于 2009-04-01T17:26:11.660 回答
0
<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>
于 2010-03-12T08:50:03.740 回答
0

您可以在页面上添加   [Add to Favorites]   按钮。

样本:

var urlAddress = "http://www.example.com/#image1";
var pageName = "Example Page Title - Image1";
function addToFavorites() {
    if (window.external) {
        window.external.AddFavorite(urlAddress, pageName); 
    } else {
        alert("Sorry! Your browser doesn't support this function."); 
    }
}

或者使用以下 jQuery 插件之一:

与/或

最后使用带有哈希的 URL,并根据该哈希值加载您的内容(图像等)。

function onLoad() {
    if (window.location.hash == "image1") {
        // load image1
    }
}

还有很多用于处理 URL 哈希事件的 jQuery 插件,例如:

也有很多非 jQuery JavaScript 库,例如:

于 2009-04-01T17:20:17.790 回答
0

如果 URL 包含哈希,如何检测页面加载,如果包含,将它们引导到您希望它们访问的页面?

于 2009-04-01T17:20:46.197 回答