Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IE8在使用jQuery BBQ重新加载页面时显示原始ajax响应_Jquery_Ruby On Rails_Hashchange_Jquery Bbq - Fatal编程技术网

IE8在使用jQuery BBQ重新加载页面时显示原始ajax响应

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

我在分页链接上使用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解决了这个问题:

 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