问题标签 [hashbang]
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 - 将 AJAX 响应作为文档处理?
我正在尝试使用 shebang 实现 AJAX - 这意味着它example.com/#!/somepage.php
只是example.com/somepage.php
加载到 AJAX 站点的内容区域中。
这样做的明显方法是请求somepage.php
然后用documentElement
新文档替换整个内容。然而,这似乎有点违背 AJAX 的目的。
相反,我正在考虑尝试加载somepage.php
,然后提取content
页面的一部分并将其简单地放在内容区域中。
为此,我可以使用正则表达式来查找,/<div id="content">.*</div>/
但这将是一个非常糟糕的主意(最简单的问题是“</div>
结束内容?)。相反,我希望能够做类似的事情ajaxresponse.getElementById('content')
,但是如何我会去转换ajaxresponse
为document
(或documentFragment
)对象吗?
或者这只是实现这种 AJAX 设置的错误方法?X-Requested-With: XMLHttpRequest
让服务器端检查并只发回内容区域会更好吗?
ajax - Google 可以跟踪嵌套的 hashbang URL 吗?
我创建了一个 onepager 网站,谷歌能够通过 !#my-url <-> _escaped_fragment_ "translation" 加载每个内容来跟踪主站点的 ajax 加载内容。包含用于显示/加载产品数据的 URL。谷歌似乎没有阅读那些二级 ajax 内容。
有没有办法告诉谷歌阅读这些内容?
提前致谢 :)
php - 应该如何在内容页面选项卡中实现 Hashbang (AJAX)?
你们有些人可能知道,Google 现在正在抓取 AJAX。到目前为止,该实现很优雅,但至少它仍然适用于 Yahoo 和 Bing AFAIK。
背景:我的网站由 Wordpress 和 HTML5 驱动。自定义帖子类型具有内容树类型,这些内容由 AJAX 驱动。在完全理解如何实现它们之前,我不使用 hashbangs (#!) 的解决方案是相当“有风险的”。每个链接作为 HREF 链接到 *site.com/article-one/?tab=first_tab*,仅显示所选选项卡 ( <div>Content...</div>
) 的内容。像这样:
您可能会注意到,data-tab 是 JavaScript 通过 AJAX Get 发送的值,它获取相关内容并在容器内呈现。另一方面,服务器获取变量并执行 a<?php get_template_part('tab-first-tab'); ?>
来传递内容。
关于风险,好吧,我可以看到谷歌和其他搜索引擎将获取 *http://site.com/article-one/?tab=first_tab* 而不是http://site.com/article-one/,使用户访问该 URL,而不是显示带有自动选择的选项卡内容的主页。
现在的问题是避免这种情况的实施。
Hashbang:根据我所学到的,我应该这样做。
- HREF 应该成为
site.com/article-one/#!first-tab
- JS 应该提取 href 的“first-tab”并将其传递给 $_GET(只是为了不使用“data-tab”)。
- JS 应该将 URL 更改为
site.com/article-one/#!first-tab
- JS 应该检测 URL 是否有
#!first-tab
,并显示选定的选项卡而不是默认选项卡。
现在,对于服务器端的实现,我有点迷失在树林里。
- Wordpress 将如何处理
site.com/article-one/?_escaped_fragment_=first-tab
? - 我是否必须更改 .htaccess 中的某些内容?
- HTML 快照应该有什么?我的猜测是所有站点,但显示了请求的选项卡,而不是仅显示内容。
我认为我可以将 Wordpress 检测到 _escaped_fragment_ 时将处理的内容分开。如果被请求,就像谷歌一样,它将显示所有内容以及所选内容,如果不是,那是因为 AJAX 正在请求它并且只会显示内容。那应该是对的?
jquery - 在 URL 中添加自己的哈希会破坏 jQuery Mobile?
我想在 URL 中使用我自己的哈希参数,但是当我这样做时,jQuery Mobile 站点不再工作。只是一个带有无尽旋转器的空白屏幕。使用 jQuery Mobile 时,哈希对我来说是真的吗?
gwt - 如何使用带有 hashbang URL(在 GWT 中)的页内 HTML 锚?
我在实现页内 HTML 锚点时遇到了一点问题,同时还通过 hashbang 获得了可收藏的 URL。描述很简单:
- 我访问了我的应用程序的一些 URL:http ://www.mypage.com/Test.html#!mycontent
在这个页面上有很多文本,我需要一些 HTML 锚点来导航。在旧式 HTML 中,我会写<a href="#myAnchor">AnchorText</a>
.
- 但是当我在我的 GWT 应用程序中单击此链接时,URL 更改为:http ://www.mypage.com/Test.html#myAnchor
GWT 平台识别出更改并将我扔回我的DefaultPlace
. 这很清楚,因为它无法将 URL 与演示者相关联。
所以现在(简单的)问题是:如何在使用页内导航的同时拥有 hashbang URL?
ajax - Hashbang URL 使网站难以被 Google 抓取?
我们的代理机构建立了一个动态网站,该网站使用了大量的 AJAX 交互和 #! (hashbang) 网址:http ://www.gunlawsbystate.com/
这是一本很长的书,您可以滚动浏览,地址栏中的 URL 会动态变化。我们必须支持 IE,所以请不要建议使用 pushState - hansbang 是我们目前唯一的选择。
左侧边栏中有一个导航,其中包含指向本书所有章节的链接。
链接示例: http ://www.gunlawsbystate.com/#!/federal-properety/national-parks-and-wildlife-refuges/
我们期待谷歌抓取这个:http://www.gunlawsbystate.com/?_escaped_fragment_=/federal-properety/national-parks-and-wildlife-refuges/ 这是该部分的完整 html 快照。(+ 有指向 www.gunlawsbystate.com/#!/federal-properety/national-parks-and-wildlife-refuges/ii-change-in-the-law/ => www.gunlawsbystate.com/ 等小节的链接?_escaped_fragment_=/federal-properety/national-parks-and-wildlife-refuges/ii-change-in-the-law/)。
根据 Google 的规范(developers.google.com/webmasters/ajax-crawling/docs/specification),这一切看起来都是完整的。该网站目前运行约 3 个月。主页每 10-15 天重新编入索引。
问题在于,由于某种原因,Google 无法正确抓取 hashbang URL。看起来谷歌只是“不喜欢”这些网址。
www.google.ru/search?&q=site%3Agunlawsbystate.com :只有 67 个页面被编入索引。请注意,Google 索引的大多数页面都有“正常”的 URL(主要是 wordpress 博客文章、类别和标签),只有 5-10% 的结果页面是 hashbang URL,尽管有 400 多个具有独特内容的书籍部分 Google 应该真的很喜欢它是否正确爬行。
有人可以给我一个建议,为什么谷歌不能正确抓取我们的书页?任何帮助将不胜感激。
PS 对于不可点击的链接,我很抱歉——stackoverflow 不允许我发布超过 2 个链接。
UPD。该站点地图已在不久前提交给谷歌。谷歌网站管理员工具说,提交了 518 个 URL,只有 62 个 URL 被编入索引。此外,在网站管理员工具的“索引状态”页面上,我看到有 1196 个页面曾经爬过;1071 页未选中。它清楚地指出,由于某种原因,谷歌没有索引 #! 它经常访问的页面。
javascript - 您应该在 AJAX 内容网站上使用 hashbang,还是只使用普通 URL?
所以我正在创建一个相当普通的基于内容的网站,它将通过 AJAX 加载新页面/内容,以获得更流畅的用户体验和一些简单的过渡。我看到很多人使用 hashbang 进行类似的实现。
我的问题是为什么不只使用常规 URL 并让服务器端根据 XMLHttpRequest var 确定是否应该提供常规页面或 JSON/XML/等?乍一看,拥有一个 URL 似乎更有意义,我很好奇为什么我在最初的搜索中没有提到这个想法/方法。也许我只是错过了一些东西......
回答: 我错过了在 HTML5 历史之前不可能在没有页面加载的情况下更新完整 URL。这就是我产生困惑的地方。
ajax - 带有 hashbang 页面的内联导航
过去,我曾经依赖 hash 进行内联导航,例如:
(指向http://url?Category=a&item=3
页面内的Paragraph1)
随着 ajax 的广泛使用,哈希标签已经切换到不同的用途,允许页面刷新而无需重新加载整个页面。例如:
我的问题:如何使内联导航在此类页面中工作?http://url#!Category=a&item=4
拿上面的例子来说,怎样才能在页面中指向Paragraph1呢?
ajax - 当父窗口离开时触发 iframe 中的音频停止 (hashbang)
我在网页 (Facebook) 上的 iframe (Facebook Tab App) 中有一个网络应用程序。
Web 应用程序播放音频,当用户离开时,通常通过单击另一个 Facebook 链接,页面加载另一个 Facebook 页面并且音频停止。
这适用于除 Internet Explorer (IE9) 以外的所有浏览器。当我导航到另一个 Facebook 页面时,音频继续播放。
Facebook 似乎使用了显示许多页面的方法(使用 hashbang #! 方法)而无需标准页面重新加载。对我来说:这意味着网络应用程序的音频继续播放(iframe 在某种程度上是孤立的?)。
当您导航到另一个不使用 #! 的站点时,音频停止播放。URL 语法和浏览器正确地重新加载这些页面。
当我导航到另一个 Facebook 页面时,我可以做些什么来确保我的网络应用程序(Facebook 选项卡应用程序)中的音频停止?我正在研究如何:
- 在父项中检测适当的事件
- 明确关闭我的网络应用程序中的音频