我对 ajax 和 ie8 有疑问。我的脚本:
$('#buton').click(function () {
$('#reader-cont #imgw, #reader-cont #txtw, #reader-cont #datew, #reader-cont #sharemew').html('<div id="ajload"></div>');
$('#reader').stop().fadeTo(1000, 1).css('z-index', 100);
var link = $(this).attr('href');
$.ajax({
url: link,
cache:false,
success: function(data) {
var imgW = $(data).find("#content #img");
var txtW = $(data).find(".cont-cont").text();
var dateW = $(data).find("#content #date");
var shareW = $(data).find('#content #shareme')
$("#reader-cont #imgw").html(imgW);
$("#reader-cont #txtw").html(txtW);
$("#reader-cont #datew").html(dateW);
$("#reader-cont #sharemew").html(shareW);
alert(txtW);
}
});
});
ff 和 chrome 加载内容没有问题,但 ie8 什么都不加载... 为什么???我知道 ie8 的 cahe 有问题,为此我写了它cache:false,
,但没有加载......
更多信息:alert(txtW);
返回空字符串...如果我.text()
从var txtW = $(data).find(".cont-cont").text();
警报窗口“对象,对象”中的返回中删除...
更新:我用这个切换脚本:
loadXMLDoc();
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var data= xmlhttp.responseText;
alert(data);
var imgW = $(data).find("#content #img");
var txtW = $(data).find(".cont-cont");
var dateW = $(data).find("#content #date");
var shareW = $(data).find('#content #shareme')
$("#reader-cont #imgw").html(imgW);
$("#reader-cont #txtw").html(txtW);
$("#reader-cont #datew").html(dateW);
$("#reader-cont #sharemew").html(shareW);
}
}
xmlhttp.open("GET",link,true);
xmlhttp.send();
}
ie8 中的警报运行完美,但在 div 中我什么都看不到....缓存现在不是问题...问题是在加载的内容中找到选择器...
我在 ie9 ff chrome safari 中对其进行了测试...完美运行...但在 ie8 中没有
更新 2:我知道问题是 .find,因为警报返回数据页面。我尝试使用这种方法,但 ie8 不运行:(
我切换这一行:
var imgW = $(data).find("#content #img");
var txtW = $(data).find(".cont-cont");
var dateW = $(data).find("#content #date");
var shareW = $(data).find('#content #shareme')
用这条线:
var data= xmlhttp.responseText;
var imgW = $(data).children('#wrapper').children('#content').children(' .region').children('#block-system-main').children('.content').children('#img');
var txtW = $(data).children('#wrapper').children('#content').children(' .region').children('#block-system-main').children('.content').children(".cont-cont");
var dateW = $(data).children('#wrapper').children('#content').children(' .region').children('#block-system-main').children('.content').children("#content #date");
var shareW = $(data).children('#wrapper').children('#content').children(' .region').children('#block-system-main').children('.content').children('#content #shareme');
ff chrome no prob ie8 don't run -.-@!#