在不使用 JavaScript/jQuery 刷新页面位置的情况下实时附加到 URI/URL
Posted
技术标签:
【中文标题】在不使用 JavaScript/jQuery 刷新页面位置的情况下实时附加到 URI/URL【英文标题】:Append to URI/URL live without refreshing the page location with JavaScript/jQuery 【发布时间】:2012-01-09 10:50:10 【问题描述】:我拥有的是一个 MVC 框架,我通过 javascript 和 jQuery 操作 DOM。这在某种程度上是对这个问题的无声引用。如果我去,通过 MVC
domain.com/page/
我登陆一个包含最近信息、更新等的默认页面。但是,如果我转到类似的东西,则通过 MVC 进行
domain.com/page/ref1/ref2/ref3
我们可以在后端处理它来做我们想做的事。当它直接去了。所以这个问题的想法是,我可以模仿至少 IE 6/7+、Firefox 3.x+、Chrome 的跨浏览器行为吗?通过模仿,我的意思是像操纵 DOM 本身一样操纵 URL/URI。这样,当有人出现并通过我们操作 DOM 的方法导航到部分并找到他们想要共享的内容时,他们所要做的就是转到浏览器的 URL 栏,然后将其复制并粘贴到消息中。
更好的是一种方法,它也可以与浏览器上的来回历史按钮一起使用。所有这些都无需重新加载/刷新页面。
【问题讨论】:
【参考方案1】:你试过了吗
window.location.replace(URL)
此功能不会加载任何页面。如果您像这样更改当前位置,当您重定向到某个地方时,您的最后一个地址将是未修改的地址。它不会将新的 URL 写入浏览器历史记录。所以它就像您只是将密钥提供给用户想要分享的内容一样。
【讨论】:
这是一个很好的起点。谢谢你。无论如何,是否有跨浏览器兼容来调用后退按钮的使用?还是希望如此之大?我发现了一些东西,但它们确实不能很好地工作。 你试过history.back()
吗?将您带到浏览器历史记录的最后一点。这是一个 java 脚本代码。我想它必须像 W3 所说的那样跨浏览器兼容 w3schools.com/jsref/met_his_back.asp【参考方案2】:
您是否考虑过修改 URL 中的锚点?在此页面上:
http://www.google.com/
将网址更改为:
http://www.google.com/#foo
... 不会触发页面刷新。所以你可以在你想要的所有锚点之后使用(读取/修改)URL的内容,并且页面不会被重新加载。应该能够以这个想法为基础。
【讨论】:
我已经考虑用锚来做这件事,并且过去有一些项目,但是运行项目的人目前的要求是他们不想在他们想要的 URL 中看到 # all / 一直到 URL。我希望它很容易,因为那个哈希虽然因为然后我会用 # 来打破它,然后 # 之后的任何东西都可以被 / 分割,不幸的是我在运动中没有那么幸运。以上是关于在不使用 JavaScript/jQuery 刷新页面位置的情况下实时附加到 URI/URL的主要内容,如果未能解决你的问题,请参考以下文章
仅使用 jQuery 或 Javascript 刷新 div
我们如何在不重新加载页面的情况下使用 javascript/jQuery 更新 URL 或查询字符串?
javascript jQuery搜索过滤,客户端脚本。您需要向包装元素添加一个数据容器,该数据容器将隐藏在不正确的m上