问题标签 [pushstate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - HTML5 历史与 AJAX
我有一个带有动态 div 'contentCol' 的 main.jsp。每次我点击侧边栏上的链接时,都会加载其他页面的内容。
假设我单击“加载”,“Load.jsp”中的内容将被加载到动态 div 中。我的href="Load.jsp?cid=CSC101"
,我需要传递一个参数cid=CSC101
,同时使用 History 来存储我的状态。
我对后退/前进按钮没有任何问题,但是每当我按 F5 时,url 参数都会丢失。我request.getParameter("cid")
在新加载的页面上做了一个很好的检索,但是一旦刷新,值就会返回 null。
javascript - 如何检测 pushState 功能的浏览器不兼容
此函数禁用链接的默认操作,并使用 pushState 函数更改 URL。我需要能够检测浏览器是否不支持此功能,以便我可以停止 preventDefault() 功能。
非常感谢任何建议
ajax - 如何使用 hashbang url 处理 Facebook 分享/点赞?
我正在构建一个网站,我将从主页打开网站上的一些其他 URI 到灯箱(AJAX)中,我想使用 HTML5 推送状态和哈希爆炸作为后备来管理状态的变化。
现在我希望这些网址可以抓取并且 Facebook 可以分享/喜欢..
如果用户浏览器支持 HTML5 推送状态,没问题,他可以分享 URL(例如 : http://myserver/example
),Facebook 会在静态内容中找到合适的 OG 元数据。
但是如果用户使用 HTML4 浏览器,他将有一个类似http://myserver/#!/example
. 无论如何我希望他能够通过Facebook分享它......
现在看起来 Facebook 支持 _escaped_fragment_ 替换方法,所以我只是将请求从http://myserver/?_escaped_fragment_=/example
to重定向http://myserver/example
,每个人都应该很高兴......</p>
所以我在我的 htaccess 中添加了一个重写条件:
我的问题是我不能让它与 Facebook 一起工作,使用 Facebook linter 它似乎总是在 hashbang 之后的 URL 部分一直进行百分比转义,导致 url 像
http://myserver/%2Fexample
which 降落到 404 :-(
有人知道如何欺骗 Facebook 不转义这部分 URL 吗?我可以在 apache mod_rewrite 方面做点什么吗?
我也对任何其他有效的 ajax 可抓取/可取的 URL 策略持开放态度;)
javascript - How does Facebook show browser loading progress during AJAX Page Loads?
In order to keep the IM Client logged in at all times Facebook avoids full page loads by using AJAX to load its pages before inserting them into the document.
However, during Facebook AJAX requests the browser appears to be visibly loading; the reload button changes to an X, and the progress indicator built into the browser indicates loading/waiting etc)
I've been able to implement AJAX based navigation successfully, but my browser doesn't show any indication of loading (since the requests are asynchronous) how do Facebook do it?
javascript - 使用 node.js 快速服务器说明 Backbone.js pushState 路由?
pushState
Backbone.js 的 0.5 版更新引入了支持。
从骨干文档:
请注意,使用真实 URL 需要您的 Web 服务器能够正确呈现这些页面,因此还需要进行后端更改。例如,如果您有 /documents/100 的路由,如果浏览器直接访问该 URL,则您的 Web 服务器必须能够提供该页面。对于完整的搜索引擎可抓取性,最好让服务器为页面生成完整的 HTML ......但如果它是一个 Web 应用程序,只需呈现与根 URL 相同的内容,然后用 Backbone 填充其余内容视图和 JavaScript 工作正常。
这似乎是一个微不足道的问题,但我想知道是否有人可以帮助我处理一些特定的(最好是express)node.js服务器代码。我应该如何处理这些路线?我有点困惑。
这是我的应用程序路由器模块的相关摘录:
我这里只有一个顶级路由和一个关于页面的路由。那么我应该如何设置一个允许我导航到的节点服务器:
javascript - 如果 popstate 事件来自带有 HTML5 推送状态的后退或前进操作,我如何检索?
我正在开发一个网页,根据我执行相应动画的下一个或后退动作,使用 pushstate 时出现问题。当我收到事件时,我如何知道用户是否使用 Pushstate API 单击了后退或前进历史按钮?还是我必须自己实现某些东西?
html - 历史 API - 用几个斜杠重写 URL?
我正在使用 HTML5 的 History API(通过 History.js)来动态重写 URL。我希望它们采用以下格式:
其中“文章”和“页面”均由 History API 设置。
但是,这并不像预期的那样工作,因为 History.js 提供的pushState
orreplaceState
似乎只适用于最后一个斜杠之后的 URL 部分。
一个简单的例子:如果我在http://www.example.com/example/
并且做pushState('Article-Title/1')
,则 url 变为http://www.example.com/example/Article-Title/1
. 现在我可以用 更改页码pushState('2')
,但我无法更改Article-Title
部分,这就是我所追求的。window.location.href
,在 Ben Lupton 的示例中使用,可以更改 URL,但它也会导致“硬”重定向。
我想这个约束是为了防止 XSS;但是,这让我很困扰。有没有合理的解决方法?
javascript - Backbone.js pushstate、googlebot、服务器端
我对主干路由器和 pushState 有疑问。
这是我的路由器:https ://gist.github.com/1672111
好吧,我有几个视图、模型、集合、带有 pushState 的路由器,它就像魅力一样。
如果用户转到/item
(甚至是 root ( /
)),Nodejs 将呈现整个页面(我们不知道,用户启用了 javascript 还是 googlebot 来抓取页面)。
但是如果用户启用了 javascript,那么 Backbone 路由将被触发,并且页面将从 ajax 调用中重新呈现。我知道它(ajax 调用)是必要的,但我该怎么办?
鉴于我应该打电话
$( this.el ).hide()
隐藏重新渲染?在服务器端,我不应该只呈现布局的主要内容吗?在这种情况下,我必须为 googlebot 提供不同的内容,而只为普通用户提供布局?(恕我直言不是最好的解决方案)
最后,我必须将渲染方法绑定到模型更改事件,因为 ie8 用户没有 pushstate,所以他们使用基于散列的导航,它不会发送到服务器端。
谢谢
仅供参考:这是来自backbonejs邮件列表的交叉邮件:https ://groups.google.com/group/backbonejs/browse_thread/thread/17c708f4429dcd73
jquery - Backbone.js 中的 pushState 是正确的吗?
我正在制作一个 Node.js/Backbone.js 应用程序,想知道我是否正确使用了 pushState。
我的应用程序从http://localhost:8888/开始。我希望 Backbone 的路由器能够接收并在索引处执行某些操作。例如,在我的应用程序中,用户上传一个文件,然后 Node.js 将用户重定向到http://localhost:8888/blah/。在这一点上,我希望 Backbone 的路由器选择那个 URL 并做一些事情。
起初,Backbone 除了 / up 什么都没有。我意识到 Backbone 当然会响应 /#something 等。所以我在启动时在 Backbone 的历史记录上设置了 pushState:true,现在它似乎在用户说 / 或 Node.js 重定向时拾取并执行所需的不同事情他们到/blah/。
那正确吗?如果有效,保留它?
我基本上希望根据用户所在的页面触发不同的 JavaScript。我过去常常用 jQuery 来做这件事,方法是找到那个特定页面独有的元素,然后启动所需的代码。但这很脏。这似乎适用于 Backbone 的路由器,只要我在历史记录中使用 pushState:true ......但这对吗?
非常感谢,詹姆斯
php - 鼠标悬停时显示隐藏的 div
在使用history.pushState
. 需要刷新部分页面 ( <div>
),该部分是使用 URL 的更改部分从数据库中选择的。
<div>
最初是隐藏的 ( ) 并在菜单链接上style="visibility:hidden;"
可见 ( style="visibility:visible;"
) 。mouseenter
菜单中有两个链接显示不同的内容,mouseenter
因此需要更改 $_GET["sect"] 即 URL 的一部分,以便 php 脚本可以选择正确的数据库记录。
网站网址:http ://site.com?sect=部分
部分——改变的部分。
结果:URL 发生变化,但 div 内容 - 没有。
对不起我的英语和低技能。