Internet Explorer中的Jquery:查找图像问题(适用于FF和Chrome)
在Firefox和Chrome中,这很好。但在Internet Explorer中,变量标题和描述将获得值“”。缩略图未定义。我知道它在IE中获取数据。getflickreasy.php从flickr检索rss 我不认为IE缓存有问题,因为它在清除后是一样的。可能是Internet Explorer中的Jquery:查找图像问题(适用于FF和Chrome),jquery,internet-explorer,Jquery,Internet Explorer,在Firefox和Chrome中,这很好。但在Internet Explorer中,变量标题和描述将获得值“”。缩略图未定义。我知道它在IE中获取数据。getflickreasy.php从flickr检索rss 我不认为IE缓存有问题,因为它在清除后是一样的。可能是$(这个)有问题。在IE中查找 您可以在以下位置查看正在运行的代码: 编辑:使用$。获取它将检索数据,但Internet Explorer无法处理它。 使用$.ajax,它目前根本无法检索数据 编辑:我更改了php获取图像的url:
$(这个)有问题。在IE中查找
您可以在以下位置查看正在运行的代码:
编辑:使用$。获取它将检索数据,但Internet Explorer无法处理它。
使用$.ajax,它目前根本无法检索数据
编辑:我更改了php获取图像的url:
http://api.flickr.com/services/feeds/photos_public.gne?id=42980910@N02&lang=en-us&format=xml
而不是:
http://api.flickr.com/services/feeds/photos_public.gne?id=42980910@N02&lang=en-us&format=rss_200
我添加了标题(“内容类型:text/xml”)代码>到php文件。我认为它现在应该得到xml了,对吗?菲德勒说:
$.get("js/getflickreasy.php", function(data)
{
$(data).find("item").each(function()
{
var title = $(this).find("title").text();
var description = $(this).find("description").text();
var thumbnail = $(description).find("img").attr("src");
}
);
}
);
HTTP/1.1200ok
日期:2010年11月17日星期三20:45:43 GMT
服务器:Apache
X-Powered-By:PHP/5.2.13
连接:关闭
内容类型:text/xml
内容长度:25878
但还是一样的问题(至少我这么认为)。嗯。。。您可能需要将数据类型设置为XML。不要使用$.get()
尝试$.ajax()
:
问题很可能是服务器的响应
使用当前配置(使用$.ajax
方法的配置),IE将收到响应。我使用一个名为的工具对此进行了验证
问题是,浏览器正在发送以下标题:
$.ajax({
type: "GET",
url: "js/getflickreasy.php",
dataType: "xml",
success: function(data) {
$(data).find("item").each(function() {
var item = $(this), title, description, thumbnail;
title = item.find("title").text();
description = item.find("description").text();
thumbnail = item.find("img").attr("src");
});
}
});
但来自服务器的响应是:
Accept: application/xml, text/xml
在让服务器返回有效的XML头之前,IE和$.ajax
方法将继续失败
这是我所认为的几次正确的事情之一!其他浏览器没有失败这一事实令人恼火。他们应该这样做。这样你就不会觉得这是IE特有的问题了。但是,我离题了。我用IE8访问了您的页面,您拥有的数据变量肯定会返回您想要的XML。因此,信息已准备好进行解析,只是IE对其不友好
除了上面提到的@Stephen之外,我倾向于使用一些更健壮的东西。确保它能在各种版本的IE以及所有非EI浏览器中工作。下面的方法还允许我将成功和错误事件传递给其他函数进行处理
Content-Type: text/html
IE比Firefox和Chrome更注重代码的正确性,尤其是通过AJAX接收的HTML/XML
如果FF和Chrome正在处理IE没有处理的AJAX请求,通常是由于返回的HTML/XML中的解析错误。此代码不起作用。它不会进入成功:函数(数据){}“它不会进入”是什么意思?你能解释一下吗?它不会进入那个函数,所以我说数据没有成功加载,这就是为什么它没有进入成功:啊哈!因此,您的脚本似乎没有返回有效的xml。请尝试将其添加到脚本标题的顶部(“内容类型:text/xml”)代码>我激活了console.log并检索到以下内容:未捕获引用错误:未定义changeTitle出现问题:OK | parsererror | undefined“出现问题:OK | parsererror | undefined”是我对错误事件的输出(如console.log行中所示),但changeTitle是通过代码中的某个地方引发的错误。
Content-Type: text/html
// this method of doing the ajax call is a little beefier than required.
// - allows us to test local XML files as well with IE
// - allows us to pass additional arguments with the success / error functions.
$.ajax({
type: "GET",
url: your.url.here,
cache: true, // or set to false
dataType: ($.browser.msie) ? "text/xml" : "xml",
success: function(data) {
var xml;
if (typeof data == "string") {
xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
xml.loadXML(data);
} else {
xml = data;
}
functionToHandleData(xml);
},
error: function(xhr, textStatus, errorThrown) {
//console.log('Problem Occured: \n' + xhr.statusText + " | " + textStatus + " | " + errorThrown);
functionToHandleError();
}
});