有没有办法在不重新加载页面的情况下修改当前页面的URL?
如果可能的话,我想访问#hash 之前的部分.
我只需要在域之后更改部分,因此它不像我违反了跨域策略.
window.location.href = "www.mysite.com/page2.php"; // Sadly this reloads
Run Code Online (Sandbox Code Playgroud) 可能重复:
修改URL而不重新加载页面
我正在寻找一种方法,使用我当前的javascript动画使我的内部链接功能正常,而不会在您点击它们时导致页面重新加载 - 但我希望在浏览器中更新URL.
许多网站都这样做,这是一个很好的例子:http://grooveshark.com/#!/ search?q = adf
如何在没有页面重新加载的情况下获取更新URL?
更多细节:
目前我的页面上的链接看起来像<a href="#aboutus">About Us</a>,这将带您<div id="aboutus"></div>通过javascript.
javascript看起来像:
$("#navigation a").click(function(e){
animate(..scroll to section..);
e.preventDefault(); // <==========
});
Run Code Online (Sandbox Code Playgroud)
我相信"e.preventDefault()"是导致URL不被更新的原因,但是如何在更改URL时阻止浏览器重新加载页面?
其他网站如何做到这一点?这种方法叫什么(所以我可以进一步研究它)?
谢谢.
我一直在寻找JQuery库的URL哈希,但发现没有什么是好的.有"历史插件",但我们都知道它是有缺陷的并且不灵活.
我在div中加载我的页面.我需要一种方法来进行后退/前进以及url散列.
mydomain.com/#home
mydomain.com/#aboutus
mydomain.com/#register
Run Code Online (Sandbox Code Playgroud)
什么是最好的库可以处理所有这些?
是否可以直接使用jQuery更改浏览器地址栏中的URL而无需刷新页面或重定向到更改的URL?
或者由于安全问题,这是不可能的?
例如,我有一个jquery.ajax驱动的列表,所以没有帖子后退/屏幕刷新.该列表具有分页元素.因此,对于第一页,浏览器地址栏中的URL是:
http://company/list.php?page=1
Run Code Online (Sandbox Code Playgroud)
如果我从列表的分页部分单击第2页,它将显示基于第2页的列表,但由于这发生了ajax样式而没有刷新/回发,浏览器URL保持在
http://company/list.php?page=1
Run Code Online (Sandbox Code Playgroud)
我希望能够将其更改为
http://company/list.php?page=2
Run Code Online (Sandbox Code Playgroud)
没有回发/重定向到新网址
这不可能吗?
我正在尝试做的最好的例子是YouTube的导航系统.如果单击指向视频的链接,则会在页面顶部显示一个红色条,指示已加载所请求页面的数量.当请求的页面加载完成后,它会立即替换上一页的内容,并开始加载视频.有几件事情正在发生,以使其尽可能无缝.
我修改了URL:
window.history.pushState("object or string", "Title", "/new-url");
Run Code Online (Sandbox Code Playgroud)
我试图加载请求的页面:
$.("html").load("newPage.php", function(){});
Run Code Online (Sandbox Code Playgroud)
这将使用新页面代码替换整个上一页的代码.这有几个问题:
来回导航与URL一起使用,但事件处理程序必须检测到这一点并加载正确的页面.我用过这个:
$(window).on('popstate', function() {
$('html').load("../"+window.location.pathname, {page:"account"});
});
Run Code Online (Sandbox Code Playgroud)$.load()不能(不应该)加载任何新的脚本标签脚本标签,因为Synchronous XMLHttpRequest on the main thread is deprecated我希望能做什么:
资料来源:
我面临一个惊人的问题.我的客户端网站上的图像有超链接.它在IE中工作但是当我在Chrome/Mozilla中打开相同的页面时,它没有显示锚点指针,点击任何一个都没有任何反应.我的链接代码是
<a href="Home.aspx?ModuleID=1">
<img alt="Alternative Text" src="Images/Logo.gif" />
</a>
Run Code Online (Sandbox Code Playgroud)
有人知道问题是什么吗?
我有一个拥有用户页面的网站.在该页面上,有几个链接可供您浏览用户的个人资料.我想这样做,当点击其中一个链接时,网址会更改,但包含用户横幅的页面的前三分之一不会重新加载.
我正在使用Backbone.js
我有一种感觉,我处于这样一种情况,即我对我正在处理的问题有如此糟糕的理解,我正在问错误的问题,所以请告诉我,如果情况似乎是这样的话
所以我建立了一个类似于 Twitter 的分页系统,其中显示了 20 个结果,用户可以单击一个链接来显示接下来的 20 个或所有结果。显示的结果数量可以由 URL 末尾的参数控制,但是,这不会使用 AJAX 进行更新,因此如果用户单击其中一个结果然后选择返回,他们必须仅从 20 开始返回结果。
我的一个想法是,如果我在使用 AJAX 获取结果时更新 URL,它应该——我希望——使用户能够来回移动而不会丢失显示的结果数量。
这实际上是可能的还是我完全错了?
另外,我将如何更改 URL?我有一种使用 javascript 编辑 URL 并将其设置为变量的方法,但我不确定如何将该变量应用于 URL。
这里的任何帮助都会很棒!
旁注:我使用 jQuery 的 load() 函数来完成我所有的 AJAX。
我发现了很多关于更改 url(无需重新加载)的问题。一些答案是 - 使用插件,使用location.hash...,或重新加载
但他们都没有为我工作。
在网站上,我有一个下拉菜单,在更改时,url 参数应该已更改。
所以我想做的是:
我想改变:www.foo.com?country=Germany为 www.foo.com?country=Slovenia不重装。
我正在努力实现的目标是可能的吗?
我如何隐藏我的 .html 文件,例如当我去 www.mysite.com 它重定向到 www.mysite.com/index.html 但它隐藏了 /\index.html 所以它保持为 www.mysite.com 但实际上是 www.mysite.com/index.html 。我真的不知道如何解释,但如果你理解我,请帮忙,谢谢。
javascript ×6
ajax ×4
html ×4
jquery ×4
hashchange ×2
url ×2
anchor ×1
apache ×1
backbone.js ×1
firefox ×1
friendly-url ×1
html5 ×1
php ×1
pushstate ×1
routing ×1