问题标签 [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 回答
9250 浏览

jquery - 查询字符串和片段之间的区别?

当使用 jQuery BBQ 时,他们使用“querystring”和“fragment”这两个词。

两者有什么区别?

0 投票
3 回答
309 浏览

jquery - 如何在服务器上加载带有 URL 中哈希标记后的变量的页面?

目前,当用户访问以下 URL 时:

服务器返回“details.html”,然后在页面返回后执行客户端 Ajax 调用以加载 id=123 的项目的数据。它使用JQuery 的 BBQ 插件

有什么方法可以检索服务器上哈希标记之后的参数,以便在服务器最初返回页面时,可以返回包含id=123.

这是需要的,这样无论用户浏览器中是否打开了 Javascript,仍会显示详细信息。如果他们打开了 Javascript,他们可以通过单击网站上现有的按钮通过 Ajax 更改内容。

提前感谢所有帮助

编辑:

当前正在以下列方式返回页面:

0 投票
1 回答
1423 浏览

javascript - jQuery BBQ 漂亮的 URL

我正在使用 BBQ jquery 插件进行 AJAX 历史管理,但在获取“漂亮的 url”时遇到问题。我已经尝试了我能想到的一切,但希望我错过了一些愚蠢的东西,有人可以指出我正确的方向。

我正在为仅填充的输入序列化一个表单,以避免散列片段中的空查询。提醒 decodeURIComponent 正在显示我想要的字符串,但我仍然以#hashfragment=key%26value%3Dkey%26value

任何人都可以帮忙吗?相关代码如下。

谢谢。

0 投票
2 回答
773 浏览

jquery - 如何了解如何在 jQuery AJAX 应用程序中启用后退按钮?

我在这里查看了所有最流行的问题,包括那些引用最流行的插件的问题,如 BBQ 和 jQuery Address。

但是,我缺少一些东西。我需要从我在这些项目中看到的任何事情中退后一步。他们假设了一些我显然没有的基本知识,并且我无法推断示例中的每一行代码实际上在做什么。

我想做四件事:

1) 使前进按钮像在非 AJAX 应用程序中一样工作。
2) 使后退按钮像在非 AJAX 应用程序中一样工作。
3)在地址栏中反映url,以便可以添加书签。
4) 生成深层链接,以便可以抓取 AJAX 内容。

仅此而已。其他任何事情都是多余的。这是一个 Rails 3.0.4 应用程序,我的链接都带有“#”的 href。单击其中一个链接会激活 application.js 中的一个函数,该函数将当前页面上 div 中的 html 替换为从 .js.erb 文件呈现的部分创建的更多链接。

我有一个运行良好的面包屑路径,但是在查看应用程序之前,使用后退按钮会将您带到您正在查看的任何网站。

所以我的一些问题是:

1) 我的每个链接都需要唯一的 href 值而不是简单的“#”吗?
2)我应该每次都替换那个div,还是简单地隐藏它并创建一个新的。如果是这样,每个新的 div 是否应该有一个新的 id?
3) 由于当前地址栏中的 url 没有改变,并且这些 AJAX 请求都是 POST,我是否必须在 Rails 中做任何事情来使其响应这些新 URL 之一,这些新 URL 在访问时总是会触发 GET 请求通过浏览器历史记录或后退按钮?

这些是使我无法解决现有问题的障碍。非常感谢您提供的任何帮助!

编辑:

我的应用程序不是基于标签的。页面加载时并非所有锚点都可用。以下是用户单击链接时发生的情况:

1) 隐藏表单中的字段被点击的链接的文本值填充。

2) 隐藏表单被序列化并通过 POST 传递给控制器​​动作。

3) 控制器动作确定谁提出了请求,确定他们可以访问哪些数据,并使用表单值(现在是参数)来检索对象列表。

4) 这些对象被传递给一个 .js.erb 视图模板,该模板又用传递的值渲染一个部分。

5)新链接通过.js.erb模板中的js反弹。

基本上,由于我的数据不是静态的,我需要弄清楚如何使用表单状态重新生成该 POST 请求,以便真正“返回”。还是可以以某种方式缓存表单状态和屏幕?

0 投票
4 回答
8797 浏览

jquery - 如何反序列化 jQuery 中的大长查询字符串?

我试图弄清楚如何在我的 AJAX 应用程序中启用后退和前进按钮,这是动态和数据库驱动的。为了捕获状态,我在关联数组中捕获 url、type 和 data 的一些值。

我在 'hashchange' 事件期间从浏览器取回哈希字符串,我只是不知道如何将其从编码的查询字符串转换回关联数组。有人可以帮忙吗?

0 投票
1 回答
1957 浏览

jquery - 在 jQuery/JavaScript 中,如何反序列化已使用“form.serialize”转换的表单值字符串

我对我在这方面遇到的困难感到惊讶。

我正在使用 form.serialize 将表单序列化为字符串以使用 .ajax 提交。我还将这个字符串值添加到一个哈希中,我用它来管理状态以启用前进和后退按钮。

我的问题是,我需要通过 javascript 从序列化表单中获取这些值,但我不知道该怎么做。我可以得到字符串,但它基本上是一个查询字符串。请注意,它实际上不是查询字符串,它只是格式化为查询字符串。

0 投票
1 回答
390 浏览

jquery - jQuery BBQ,如何检测不会触发 hashchange 的重复点击

我正在使用 jQuery 插件 hashchange:http ://benalman.com/projects/jquery-hashchange-plugin/

这很好用,问题是如果您多次单击链接:

hashchange 不会重新触发我想要的,因此当用户多次单击链接时,我可以刷新数据。那可能吗?

关于如何检测重复点击的任何想法?

谢谢

0 投票
1 回答
151 浏览

javascript - 片段 URL 转换

我的 BBQ 插件已经在工作了,所以这只是表面上的改变。我不知道如何将 URL/index.html#pages/index.html/index.html#index

我猜这基本上是一个片段转换,但对 JS 来说很新。有什么想法吗?

0 投票
1 回答
3186 浏览

jquery - 支持带有ajax的浏览器后退按钮而不依赖于哈希更改?

我目前正在使用 jQuery BBQ 插件来启用 Bowser 导航按钮,但我有一个问题,如果用户为其中一个页面保存了书签,比如说......

当用户通过书签返回时,必须首先加载整个页面......

在 URL 的哈希部分可用于 ajax 回调完成页面之前。

为了解决这个问题,我尝试在对主页的所有 url 调用上只创建一个“骨架”页面,以便通过 ajax 获取所有“内部”内容,但这似乎不是一个很好的解决方案。

有谁知道任何不使用“哈希”方法来支持“后退按钮历史记录等”的方法/插件?

0 投票
2 回答
1192 浏览

jquery - IE 8 在使用 jQuery BBQ 重新加载页面时显示原始 ajax 响应

我在分页链接上使用 Ben Almans 的 jQuery BBQ 和 jQuery hashchange 插件。两者都在 Opera 和 Firefox 中按预期工作,但在 IE 8 中却没有(很惊讶,嗯?)。IE 也适用于 ajax、后退按钮和 hashchange,但是当我单击重新加载按钮并显示原始 ajax响应而不是在先前加载的页面中运行它时失败。

所以这是我丑陋的代码和一些关于我试图在我的分页中实现的功能的解释:

1)搜索引擎友好链接(服务器响应html或js取决于客户端的javascript可用性)。

2) JS开启时动态可变的url(使用'#'符号)。

3) 历史记录和后退按钮支持。

4)最小化双重请求(如果相同的内容与html页面一起加载,则不要发出ajax请求)。

JS:

模板(Rails 视图):

AJAX 模板(Rails js 视图):

UPD: IE 在刷新时不发送请求类型标头(或 Rails 无法确定)。所以 Rails 生成的是 JS 视图而不是 HTML。解决者:

有更好的解决方案吗?