IE8在使用jQuery BBQ重新加载页面时显示原始ajax响应
我在分页链接上使用Ben Almans的jQuery BBQ和jQuery hashchange插件。两者在Opera和Firefox中都能正常工作,但在IE8中却不能(惊讶吧?)。IE也适用于ajax、back按钮和hashchange,但当我单击reload按钮并显示响应而不是在以前加载的页面中运行响应时失败 下面是我难看的代码和一些关于我试图在分页中实现的功能的解释: 1) 搜索引擎友好的链接(服务器根据客户端的javascript可用性响应html或js) 2) 打开JS时动态更改url(使用“#”符号) 3) 历史和后退按钮支持 4) 最小化双重请求(如果html页面加载了相同的内容,则不要发出ajax请求) JS: 有更好的解决方案吗?IE似乎要求刷新时使用“*/*”,rails似乎认为javascript比html更好。因为刷新只应该发生在html上,所以告诉rails“*/*”意味着html解决了这个问题:IE8在使用jQuery BBQ重新加载页面时显示原始ajax响应,jquery,ruby-on-rails,hashchange,jquery-bbq,Jquery,Ruby On Rails,Hashchange,Jquery Bbq,我在分页链接上使用Ben Almans的jQuery BBQ和jQuery hashchange插件。两者在Opera和Firefox中都能正常工作,但在IE8中却不能(惊讶吧?)。IE也适用于ajax、back按钮和hashchange,但当我单击reload按钮并显示响应而不是在以前加载的页面中运行响应时失败 下面是我难看的代码和一些关于我试图在分页中实现的功能的解释: 1) 搜索引擎友好的链接(服务器根据客户端的javascript可用性响应html或js) 2) 打开JS时动态更改url
before_filter :set_request_type
...
protected
def set_request_type
request.format = :html if request.format == "*/*"
end
我对IE8也有同样的问题。我的控制器提供JS和HTML响应。 对于我来说,确保在代码中首先注意html格式块解决了问题: 这不起作用,因为rails使用js模板响应:
respond_to do |format|
format.js
format.html
end
但是,这很好:
respond_to do |format|
format.html
format.js
end
先生,你是个天才。可能需要注意的是,必须将其放入
应用程序\u controller.rb
中。
respond_to do |format|
request.format.js? ? (format.js {render :index}) : (format.html {render :index})
end
before_filter :set_request_type
...
protected
def set_request_type
request.format = :html if request.format == "*/*"
end
respond_to do |format|
format.js
format.html
end
respond_to do |format|
format.html
format.js
end