问题标签 [jquery-bbq]

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 投票
1 回答
4365 浏览

javascript - 以编程方式更新哈希时禁用 hashchange 侦听器(jQuery BBQ)

为了防止在以编程方式设置 URL 哈希 (#) 时出现反馈循环(与手动更改 URL 相比),我想暂时禁用 hashChange 侦听器。

使用$.bbq.pushState(hash)更新哈希时,我应该如何更改此代码以实际禁用 hashchange 事件?(下面的代码不起作用)

0 投票
1 回答
292 浏览

jquery - 带有下一个和上一个按钮的 jQuery BBQ

如何将 jQuery BBQ 链接应用到不使用编号选项卡的页面,而是使用上一个和下一个按钮来更改相应的内容区域?谢谢!

0 投票
1 回答
1239 浏览

jquery - jquery tabs后退按钮支持

我环顾四周,发现了一些使用哈希等选项卡支持后退按钮的解决方案。

我的问题是:我想实现一个页面,它有一个标签小部件,并使用 ajax 调用到一个 div 中。

如果我单击几个选项卡,我希望能够使用后退按钮和页面刷新并跟踪我当前选择的选项卡。但是如果我返回(使用后退按钮)足够远,我想调用在包含选项卡的页面之前加载的页面。

  • 第 0 页是我的主页

  • 第 1 页是纯文本并加载到 page0 上的 div 中

  • 第 2 页有标签并加载到同一个容器 div

我希望能够单击 page1、page2、page2-tab1、page2-tab2,然后使用后退按钮进行反向操作。

这可能吗,或者您可以指出任何可行的示例吗?

0 投票
1 回答
280 浏览

javascript - 如何从父叠加层中删除叠加层主题标签和尾随菜单

例如,我们已经激活了上下文链接和覆盖模块,当单击节点的编辑按钮时,它位于页面的底部,它在覆盖上打开。现在,当我们查看地址栏时,链接现在看起来像这样http://localhost:8888/node#overlay=node/25/edit%3Fdestination%3Dnode

叠加层的问题在于它推动父叠加层一直滚动到顶部,当我决定“取消”编辑时,我必须再次滚动到底部才能到达节点预告片。所以我需要从上面的链接中删除这部分#overlay=node/25/edit%3Fdestination%3Dnode

现在我猜它是由 jquery bbq 功能引起的。并且查看覆盖模块和她的 js 文件,我发现它非常可怕并且不知道如何避免这种情况。

对于像我这样的初学者,我需要一些帮助来解决这个问题。

非常感谢。

0 投票
1 回答
896 浏览

jquery - jQuery BBQ pushState URL 没有显示它应该如何

我正在使用 jQuery BBQ 插件,但我似乎无法以应有的方式显示 url。它是这样/#url=photographs.php%3F1的,如果它应该是/#url=photographs.php?1

想法?

0 投票
0 回答
290 浏览

jquery - 如何使用 jquery bbq 和依赖控件避免重复的 hashchange 事件?

假设我有三个选择框,所有这些框都设置为$.bbq.pushStateonChange。如果选择还具有相互依赖关系(例如,选择不同的模型会改变可用的颜色),则更改一个选择可能会导致window.hashchange多次触发:一次从初始更改开始,然后再次针对每个依赖选择的更改处理程序。

如果 hashchange 处理程序很昂贵(或不是幂等的),这可能是一个问题。防止这种情况发生的最好方法是什么?

0 投票
1 回答
4066 浏览

javascript - 以编程方式更新哈希而不触发 hashchange 事件?

我正在使用 jQuery BBQ 插件将状态推送到 location.hash。

为了防止反馈循环,我想在以编程方式设置状态时暂时禁用 hashchange 侦听器。

我见过这个解决方案: 更改哈希而不触发 hashchange 事件

不幸的是,它似乎并不完美,因为即使我这样做,它有时也会触发:

现在有更好的方法来以编程方式推动状态吗?也许另一个 JS 库?

0 投票
4 回答
1510 浏览

jquery - 有没有办法让 jQuery BBQ Google 可索引?

我正在开发一个支持 AJAX 的网站,我决定使用Ben Alman 的 BBQ 插件进行 hashchange 事件。

但是,有了这个插件,我不能为谷歌搜索做 Hashchanges (!#)

有没有其他插件呢?

谢谢

0 投票
1 回答
388 浏览

jquery - 是否有定义在 document.open 调用中打开的 href 的标准方法?

我正在处理的困境是,在jquery-bbq 代码中,因为 IE6 和 IE7 不支持hashchange,它们加载页面两次以获得历史状态。

这会产生负面影响,因为代码在服务器端和客户端运行两次。用于创建 iframe 的方法是这样的:

创建了一个带有 src 的空白 iframe javascript:0。该document.open方法被调用,似乎它抓住了location.href父窗口的默认值作为打开的页面的默认值.open

我基本上必须修改代码,使其不会两次打开相同的 url,所以我希望覆盖默认值并指定一个参数,例如 ?iframe=true。

例子:

http://example.com/views/step-2?one=two

在 IE 中,上面的页面被加载,然后在 iframe 中再次加载。服务器端代码执行两次,但我不希望这种情况发生。

我想附加到 URI,以便在指定参数的情况&iframe=1下阻止我的服务器端代码运行。iframe

最明显的两件事是:

  1. 设置 iframe 的 src,但这可能会产生负面影响,我很确定它的存在是有原因的。
  2. 而不是 use document.open.close,而是iframe.location.href手动使用并将其设置为 href 。

如果有人有过 iframe 黑客攻击的经验,我将不胜感激一些提示。

编辑:我想到的另一个解决方法是通过 iframe/ajax 加载页面,该页面在 iframe 执行之前设置document.open会话变量,这会创建一个等于 1 的“iframeloading”会话变量,并在 iframe 上设置一个加载事件处理程序load 将其设置回 0,并调整我的服务器端代码以在会话 var 设置为 1 时不执行。类似于:

0 投票
1 回答
181 浏览

javascript - pushState 在 IE 7 中导致回发 >

目前我正在做一个服务器端重定向,它像这样附加位置哈希......

当我调用 pushState 来更新位置哈希时,这会触发一个回帖。

请注意,这不会在 FF 中发生,但在 IE(7 及更高版本)中由于某种奇怪的原因会触发回发。

我怎样才能阻止回帖的发生?