【问题标题】:Changing page urls without redirecting在不重定向的情况下更改页面网址
【发布时间】:2011-11-06 04:07:33
【问题描述】:

我想向用户显示我在主页上预览他的项目的 url。这将帮助我的用户找到该项目的主页。我在 facebook 上看到过类似的例子。现在有一天,当您单击 Facebook 上发布的图像时,它会以剧院模式预览图像,当您刷新浏览器时,它将带您到该图像的主页。 我尝试了下面提到的方法。

location.hash="/example";

这不是我想要的,因为我不只是想更改哈希属性。我想更改网址。 我尝试的下一件事是 window 对象的 pushState 属性。这在 IE 中不起作用,所以这对我不起作用。

window.history.pushState('object',"title goes here","New_location_goes_here");

谁能帮帮我。 提前致谢

【问题讨论】:

    标签: javascript url


    【解决方案1】:

    您在facebook中提到的预览是使用AJAX(XMLHttpRequest)在后台加载预览并将其添加到当前页面。

    有一个名为lightbox 的通用小部件以及它的许多后代可供选择。查看wikipedia lightbox article

    不会更改浏览器地址栏中的 URL,如果那是您所追求的 - 在这一点上我似乎不清楚这个问题 - 这些 (AJAX) 方法无需更改当前 URL 地址。


    (Sourabh,感谢您的澄清)

    例如,一种方法是将预览项目附加到 URL 中

    http://example.com/stuff/pageA
    

    可能变成

    http://example.com/stuff/pageA/preview1
    http://example.com/stuff/pageA/preview2
    (or)
    http://example.com/stuff/pageA?preview=preview1
    http://example.com/stuff/pageA?preview=preview2
    (or)
    http://example.com/stuff/pageA/preview1.png
    http://example.com/stuff/pageA/preview2.png
    

    pageA 的服务器端处理程序将更改为处理 pageA/*,并且仍会加载相同的页面,但还会在灯箱中加载预览图片。

    更改哈希,您说您不想这样做,可以保留在同一页面上并加载预览,并且可以添加书签,但不幸的是,更改 URL 将不得不访问服务器.

    【讨论】:

    • 我可以预览这些项目,但我想做的是更改 url,以便当用户为该项目添加书签时,他们可以将指向该项目主页的链接添加为书签。进行 ajax 预览和更改 url 是两个独立的问题。 !第一个对我来说很清楚,但第二个是被击中的点。
    【解决方案2】:

    好吧,您可以使用 jQuery.uoload() 方法并对 php 文件和会话变量进行一些 ajax 调用。然后在页面加载时检查是否设置了变量并重定向到它。除非有一些针对 IE 的 pushState 的修复。

    在 IE 上很少有关于 pushState 的问题:

    pushState fallback for Internet Explorer?

    Does Internet Explorer support pushState and replaceState?

    【讨论】:

    • 我不想要重定向。我只想更改页面的 url 而无需重定向。
    猜你喜欢
    • 2013-10-12
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 2018-10-20
    • 2021-11-27
    相关资源
    最近更新 更多