问题标签 [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.

0 投票
2 回答
171 浏览

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'),但是如何我会去转换ajaxresponsedocument(或documentFragment)对象吗?

或者这只是实现这种 AJAX 设置的错误方法?X-Requested-With: XMLHttpRequest让服务器端检查并只发回内容区域会更好吗?

0 投票
1 回答
1131 浏览

ajax - Google 可以跟踪嵌套的 hashbang URL 吗?

我创建了一个 onepager 网站,谷歌能够通过 !#my-url <-> _escaped_fragment_ "translation" 加载每个内容来跟踪主站点的 ajax 加载内容。包含用于显示/加载产品数据的 URL。谷歌似乎没有阅读那些二级 ajax 内容。

有没有办法告诉谷歌阅读这些内容?

提前致谢 :)

0 投票
1 回答
877 浏览

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:根据我所学到的,我应该这样做。

  1. HREF 应该成为site.com/article-one/#!first-tab
  2. JS 应该提取 href 的“first-tab”并将其传递给 $_GET(只是为了不使用“data-tab”)。
  3. JS 应该将 URL 更改为site.com/article-one/#!first-tab
  4. JS 应该检测 URL 是否有#!first-tab,并显示选定的选项卡而不是默认选项卡。

现在,对于服务器端的实现,我有点迷失在树林里。

  1. Wordpress 将如何处理site.com/article-one/?_escaped_fragment_=first-tab
  2. 我是否必须更改 .htaccess 中的某些内容?
  3. HTML 快照应该有什么?我的猜测是所有站点,但显示了请求的选项卡,而不是仅显示内容。

我认为我可以将 Wordpress 检测到 _escaped_fragment_ 时将处理的内容分开。如果被请求,就像谷歌一样,它将显示所有内容以及所选内容,如果不是,那是因为 AJAX 正在请求它并且只会显示内容。那应该是对的?

0 投票
2 回答
2774 浏览

jquery - 在 URL 中添加自己的哈希会破坏 jQuery Mobile?

我想在 URL 中使用我自己的哈希参数,但是当我这样做时,jQuery Mobile 站点不再工作。只是一个带有无尽旋转器的空白屏幕。使用 jQuery Mobile 时,哈希对我来说是真的吗?

0 投票
1 回答
1389 浏览

gwt - 如何使用带有 hashbang URL(在 GWT 中)的页内 HTML 锚?

我在实现页内 HTML 锚点时遇到了一点问题,同时还通过 hashbang 获得了可收藏的 URL。描述很简单:

在这个页面上有很多文本,我需要一些 HTML 锚点来导航。在旧式 HTML 中,我会写<a href="#myAnchor">AnchorText</a>.

GWT 平台识别出更改并将我扔回我的DefaultPlace. 这很清楚,因为它无法将 URL 与演示者相关联。

所以现在(简单的)问题是:如何在使用页内导航的同时拥有 hashbang URL?

0 投票
2 回答
2422 浏览

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 页未选中。它清楚地指出,由于某种原因,谷歌没有索引 #! 它经常访问的页面。

0 投票
1 回答
285 浏览

javascript - 您应该在 AJAX 内容网站上使用 hashbang,还是只使用普通 URL?

所以我正在创建一个相当普通的基于内容的网站,它将通过 AJAX 加载新页面/内容,以获得更流畅的用户体验和一些简单的过渡。我看到很多人使用 hashbang 进行类似的实现。

我的问题是为什么不只使用常规 URL 并让服务器端根据 XMLHttpRequest var 确定是否应该提供常规页面或 JSON/XML/等?乍一看,拥有一个 URL 似乎更有意义,我很好奇为什么我在最初的搜索中没有提到这个想法/方法。也许我只是错过了一些东西......

回答: 我错过了在 HTML5 历史之前不可能在没有页面加载的情况下更新完整 URL。这就是我产生困惑的地方。

0 投票
2 回答
479 浏览

ajax - 带有 hashbang 页面的内联导航

过去,我曾经依赖 hash 进行内联导航,例如:

(指向http://url?Category=a&item=3页面内的Paragraph1)

随着 ajax 的广泛使用,哈希标签已经切换到不同的用途,允许页面刷新而无需重新加载整个页面。例如:

我的问题:如何使内联导航在此类页面中工作?http://url#!Category=a&item=4拿上面的例子来说,怎样才能在页面中指向Paragraph1呢?

0 投票
1 回答
1701 浏览

c# - Uri.IsWellFormedUriString 用于相对 Hashbang url 兼容性

在以下测试中,为什么(仅)最后一个测试失败?

如果在 Absolute 版本中Uri识别HashbangsIsWellFormedUriString,为什么在 Relative 版本中不识别?我错过了什么?

注意:没有帮助。

0 投票
1 回答
379 浏览

ajax - 当父窗口离开时触发 iframe 中的音频停止 (hashbang)

我在网页 (Facebook) 上的 iframe (Facebook Tab App) 中有一个网络应用程序。

Web 应用程序播放音频,当用户离开时,通常通过单击另一个 Facebook 链接,页面加载另一个 Facebook 页面并且音频停止。

这适用于除 Internet Explorer (IE9) 以外的所有浏览器。当我导航到另一个 Facebook 页面时,音频继续播放。

Facebook 似乎使用了显示许多页面的方法(使用 hashbang #! 方法)而无需标准页面重新加载。对我来说:这意味着网络应用程序的音频继续播放(iframe 在某种程度上是孤立的?)。

当您导航到另一个不使用 #! 的站点时,音频停止播放。URL 语法和浏览器正确地重新加载这些页面。

当我导航到另一个 Facebook 页面时,我可以做些什么来确保我的网络应用程序(Facebook 选项卡应用程序)中的音频停止?我正在研究如何:

  • 在父项中检测适当的事件
  • 明确关闭我的网络应用程序中的音频