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 実行しない -.-@!#