PDA

View Full Version : سوال: مشکل با IE



Dr.Defacer
سه شنبه 19 مرداد 1389, 16:24 عصر
سلام دوستان من یک پروژه انجام دادم که در بعضی قسمت های پروژه از Jquery استفاده کردم
در یک قسمت برای load صفحه به این صورت عمل کردم


function order(res)
{
$('#jquery').html('<p><div style="padding-right:160px;background:#000"><img src="ajax-loader.gif" /></div></p>');
$('#jquery').load("order.php?act=see&id="+res);
}

در safari و firefox هیچ مشکلی نداره اما داخل IE بعضی وقت ها عمل میکنه بعضی وقت ها نه !
و در پایین صفحه این Error میاد :
Message: Object doesn't support this property or method
Line: 123
Char: 183
Code: 0
ممنون میشم راهنمایی کنید

mehdi.mousavi
سه شنبه 19 مرداد 1389, 17:36 عصر
سلام در یک قسمت برای load صفحه به این صورت عمل کردم
و در پایین صفحه این Error میاد :
Message: Object doesn't support this property or method
Line: 123
Char: 183
Code: 0
ممنون میشم راهنمایی کنید

سلام.
این کدی که اینجا قرار داده اید، به خودی خود هیچ مشکلی نداره و با کلیه مرورگرها Compatible هستش. اگر کد کامل خودتون رو بذارید، بهتر میشه راهنمایی کرد و به منشاء اصلی خطا پی برد.

موفق باشید.

پاورقی: استفاده از ID ی jquery برای Element اصلا ایده جالبی نیست. بهتره یه شناسه معنادار به Element خودتون بدید تا بعدا خواننده کد به اشتباه نیفته.

Dr.Defacer
یک شنبه 07 شهریور 1389, 03:18 صبح
این کد روی همه مرورگرها جز ie مشکلی نداره . وقتی با ie بازش می کنم و کلیک می کنم loading که همون عکس gif هست میاد و همینجور باقی میمونه . اگر بعد از بالا اومدن صفحه رفرش کنم مشکل حل میشه یعنی اگر هر بار سایت رو باز می کنم یک بار رفرش کنم مشکل حل میشه .
راهی برای برطرف کردن این مشکل سراغ دارید؟؟؟؟
فکرکنم بیشر با loading مشکل داره

mehdi.mousavi
یک شنبه 07 شهریور 1389, 12:19 عصر
سلام.
تابع order از کجا Call میشه؟ توی Ready Handler فراخوانیش کرده اید، یا خیر؟ در هر حال، این انتظار که بدون دیدن کد، بخواهیم به منشاء خطا پی ببریم، قدری غیر منصفانه هستش.

موفق باشید.

Dr.Defacer
یک شنبه 07 شهریور 1389, 19:46 عصر
کد اصلی رو دادم (یعنی کد تابع order) . اینم کد جایی که صداش میزنم :


<li id="4" onclick="javascript:order(this.id)">
<a class="sf-with-ul" href="#" ><span class="menucolor">آیین نامه ها</span><span class="sf-sub-indicator"></span></a>

</li>
یک id دادم و id رو به عنوان پارامتر order قرار دادم و صداش زدم . کد دیگه ای که احتیاج نیست؟ هم کد تابع رو دادم هم کد نحوه فراخوانی .

mehdi.mousavi
یک شنبه 07 شهریور 1389, 22:42 عصر
کد اصلی رو دادم (یعنی کد تابع order) . اینم کد جایی که صداش میزنم : یک id دادم و id رو به عنوان پارامتر order قرار دادم و صداش زدم . کد دیگه ای که احتیاج نیست؟ هم کد تابع رو دادم هم کد نحوه فراخوانی .

سلام.
بله. متوجه هستم کدتون چیکار میکنه! (اگرچه این کد با Unobtrusive JavaScript در تضاد هستش). کدهایی که شما دادید منشاء خطا رو مشخص نمیکنه! به پیام خطایی که گذاشتید توجه کنید، نوشته Char 183 ایراد داره. کد شما به زحمت به 120 کاراکتر برسه! اگر مایل بودید تا خطا رو پیدا کنم، کد کاملتون رو اینجا قرار بدید.

موفق باشید.

Dr.Defacer
دوشنبه 08 شهریور 1389, 04:31 صبح
کد دیگه ای در کارنیست . اونجا صدا زده میشه به اون تابع که دادم .اون اررور هم که دادم از خود framework میگیره نه از کد من . اینم ارور به طور کامل :


Webpage error details

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; AskTB5.5)
Timestamp: Mon, 30 Aug 2010 00:28:37 UTC


Message: Object doesn't support this property or method
Line: 123
Char: 183
Code: 0
URI: http://localhost/uni/js/jquery.js

mehdi.mousavi
دوشنبه 08 شهریور 1389, 10:17 صبح
سلام.
از کدوم نسخه jQuery استفاده می کنید؟ لطفا اون بخشی از HTML اتون رو که در اون Element ای با ID ی jquery نیز تعریف کرده اید رو بذارید. در هر حال، روش صحیح انجام اینکار این هستش که در Ready Handler، اون li element مورد نظر رو بگیرید، اگر Click شدش، اونوقت loading رو insert کرده و عمل load رو انجام بدید. اینطوری که شما کد JavaScript و HTML اتون رو با هم ترکیب کرده اید (منظورم اون بخش Onclick هستش) در jQuery منسوخه. ایرادی هم که شما میگیرید، ممکنه به پارامترهای دیگه ای بستگی داشته باشه. لزوما اینطور نیستش که یک خط، خودش به تنهایی باعث یک خطا بشه. ممکنه در طی یک روند، بخشی از سیستم نرم افزاری بهم بریزه، و این خطا خودش رو در جای دیگه ای به طریق دیگه ای نشون بده. آیا از JS Framework دیگه ای نیز در کنار jQuery استفاده می کنید؟ آیا ممکنه در شرایطی اون id attribute برای برخی از element ها وجود نداشته باشه و شما آدرسش کنید؟

جای این یک خط کد،

$('#jquery').html('<p><div style="padding-right:160px;background:#000"><img src="ajax-loader.gif" /></div></p>');

لطفا اینو آزمایش کنید:

$('#jquery').empty().prepend('<p><div style="padding-right:160px;background:#000;"><img src="ajax-loader.gif" /></div></p>');

(اگر چه هنوز هم قدری بعید میدونم که این کد ایراد داشته باشه، چون دیشب حتی خودم آزمایشش کردم و بدون ایراد کار میکردش).

موفق باشید.

Hell Lord
دوشنبه 08 شهریور 1389, 10:51 صبح
بهتر است از یک دیباگر برای نوشتن کدهای خود و تست آن در IE استفاده کنید و گرنه شرط میبندم با کار بیشتر و تست برای IE کچل خواهید شد!
میتوانید از .ajax به جای .load استفاده کنید و خاصیت cache آن را خاموش کنید و ببینید باز هم مشکل سر جایش است یا خیر.

Dr.Defacer
دوشنبه 22 شهریور 1389, 09:51 صبح
من از اخرین ورژن فریم ورک jquery استفاده می کردم که مشکل داشت از فرم ورک ورژن 1.2.6 استفاده کردم مشکل حل شد