PDA

View Full Version : عدم نمایش متن سایت در IE8



شیرین احمدی
دوشنبه 01 مهر 1392, 15:58 عصر
با سلام
بنده یک سایت طراحی کردم که برای گرفتن اطلاعات از سرور و نمایش انها از آژاکس استفاده می کند و نوع داده ها هم به فرمت json هست . این سایت با firefox ,chrome, IE9,IE10 هیچ مشکلی ندارد اما در IE8 محتوای بعضی قسمت ها نمایش داده نمی شود . جالب اینجاست که بعضی قسمت ها که انها هم با آژاکس و json هستند لود می شود . نمی دونم مشکلشو چطور باید پیدا کنم . ممنون می شم اگه تجربه ای دوستان دارید در اختیار من بذارید . ممنون
نمونه کد



function Biography()
{
ChangeCss();
$("#LeftBox").html("");
$("#RightBox").html("");
$.ajax({
type: "GET",
async: false,
url: "PHP/mainpage.php",
data: {'do':'showBiography'},
contentType: "application/json",
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Error");
},
success: function (data) {
var replyhtml='';
reply = jQuery.parseJSON(data);
var replyLength = reply.length;
for(i=0;i<replyLength;i++)
{
var tmp=reply[i]["Contentbiography"];

replyhtml +='<div class="Bformat" ><img src="Images/Biography/'+reply[i]["Picbiography"]+'" style="margin:1px;float:left;" width="150px" height="150px"/>'+tmp.replace(/\n/g,"<br/>")+'</div>';
}
$('#RightBox').html(replyhtml);

}
});

}


function Articles()
{
ChangeCss();
$("#LeftBox").html("");
$("#RightBox").html("");
$.ajax({
type: "GET",
async: false,
url: "PHP/mainpage.php",
data: {'do':'showArticles'},
contentType: "application/json",
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Error");
},
success: function (data) {
var replyhtml='';
reply = jQuery.parseJSON(data);
var replyLength = reply.length;
replyhtml +='<div style="margin:10px;padding:10px;">تعداد مقالات :<font size="2" color="grey">'+replyLength+'&nbsp;</font>عدد</div>';
for(i=0;i<replyLength;i++)
{
var tmp=reply[i]["Summaryworks"];
replyhtml +='<div class="pformat" >'+tmp+'&nbsp;<a href="TextFiles/Works/'+reply[i]["Srcworks"]+'" style="margin-right:10px">دانلود</a></div>';
}
$('#RightBox').html(replyhtml);

}
});

}


function Biography بدون مشکل کار میکنه اما تابع دوم قسمت آژاکسش لود نمی کنه هیچ چیزی رو

jalil_gh
دوشنبه 01 مهر 1392, 18:33 عصر
شما از کدوم نسخه‌ی جی‌کوئری استفاده میکنید؟ نسخه ۲ به بعد از ie8 و پایین‌تر پشتیبانی نمی‌کنه.
و اینکه dataType رو برابر json بزارید درست نمیشه؟؟
کلا error چی میده؟

شیرین احمدی
دوشنبه 01 مهر 1392, 23:43 عصر
شما از کدوم نسخه‌ی جی‌کوئری استفاده میکنید؟ نسخه ۲ به بعد از ie8 و پایین‌تر پشتیبانی نمی‌کنه.
و اینکه dataType رو برابر json بزارید درست نمیشه؟؟
کلا error چی میده؟
والا در مورد error فقط اینه که لود نمی شه مطالب والا پیغام errorنمی ده .ورژن جی کوئری 1.5.2 هست . datatype رو برابر json قرار دادم اما تو IE8 پیغام error داد .تو فایرفاکسم کلا چیزی لود نکرد بدون اون فایرفاکس مشکلی نداشت.

jalil_gh
سه شنبه 02 مهر 1392, 10:02 صبح
وقتی dataType رو برابر json قرار میدید یعنی این که متد ajax انتظار داره که اطلاعات دریافتی از نوع json باشه. اگه از نوع json نباشه تابع error اجرا میشه. احتمالا سرور شما اطلاعاتی غیر از json میفرسته یا اینکه فرمتش درست نیست.
اگه تو فایرفاکس افزونه firebug رو نصب کرده باشید تو قسمت network نوع اطلاعات رد و بدل شده رو میتونید مشاهده کنید.
تو کروم هم میتونید با فشار دادن ctr+shift + i میتونید web inspector رو باز کنید و از قسمت network اطلاعات رد و بدل شده رو مشاده کنید.

شیرین احمدی
چهارشنبه 03 مهر 1392, 23:47 عصر
[Object { 0="1", 1="1", 2="این فایل یک مقاله می باشد لطفا مطالعه فرمایید", more...},
Object { 0="2", 1="1", 2="این فقط یک تست می باشد", more...}]

این نوع داده ی برگشتی هست

jalil_gh
پنج شنبه 04 مهر 1392, 08:54 صبح
یه نکته دیگه هم هست اونم اینه که وقتی شما dataType رو برابر json قرار میدید جی‌کوئری به طور پیشفرض اونو parse میکنه و تبدیل به شی جاوااسکریپت میکنه.
برای همین داخل تابع success شما نباید دوباره داده‌های دریافتی رو parse کنید. بنابراین data تو تابع success به صورت یک شی جاوااسکریپت خواهد بود و شما نباید با jsonParse.$ دوباره اونو parse کنید.
success: function (data) {
var replyhtml='';
//reply = $.parseJSON(data);
var reply = data;
var replyLength = reply.length;
replyhtml +='<div style="margin:10px;padding:10px;">تعداد مقالات :<font size="2" color="grey">'+replyLength+'&nbsp;</font>عدد</div>';
for(i=0;i<replyLength;i++)
{
var tmp=reply[i]["Summaryworks"];
replyhtml +='<div class="pformat" >'+tmp+'&nbsp;<a href="TextFiles/Works/'+reply[i]["Srcworks"]+'" style="margin-right:10px">دانلود</a></div>';
}
$('#RightBox').html(replyhtml);

}

شیرین احمدی
پنج شنبه 04 مهر 1392, 23:24 عصر
نه متاسفانه حل نشد . ممنون که وقت گذاشتین

sinoser
جمعه 05 مهر 1392, 09:24 صبح
اول نگفتم که نگید چرا گیر الکی میدی و ...
من کاربرایی که به روز نیستن رو کلا از طیف طراحیم گذاشتم کنار
و هیچی بشون نشون نمی دم
کسی که خودش هیچی تلاشی برای استفاده از تکنیکای جدید نمی کنه مگه من بیکار بشینم چندساعت وقتمو بذارم که اقا بتونن درست ببینن
نه خیر برای این جور موارد 2 راه هست
راه اول کلا نادید گرفتشونه
راه دمم هم استفاده از مدل کلاسیک برای صفحتونه مثل یاهو که 2 استایل قدیمی و جدید داره و هر 2 بازه برای استفاده

هر چند jQ تمام تلاششو برای همگام سازی برنامه ها برای مرورگر های مختلف کرده اما این که روی این چیزا این همه انرژی بذاریم معقول نیست
بازم می گم این نظر منه و اگر این عقیده رو همه داشتن همه کاربرا مجبور به بروز شدن می کردن و اون وقته که کار همه ساده بشه و پروژه ها حرفه ای