PDA

View Full Version : سوال: وقتی از فایل جداگانه جاوااسکریپت استفاده می کنم به مشکل می خورم



bftarane
جمعه 18 آذر 1390, 18:15 عصر
سلام. من یه منوی jquery تو سایتم استفاده کردم (که البته از Css هم استفاده شده)
و از این کدها در masterpage
استفاده کردم.

<script type="text/javascript" src="jquery-1.7.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {

$('#nav li').hover(
function () {
//show its submenu
$('ul', this).slideDown(100);

},
function () {
//hide its submenu
$('ul', this).slideUp(100);
}
);

});
</script>


بعد تصمیم گرفتم کدهای جاوا اسکریپت رو به یه فایل جداگانه منتقل کنم و اونها رو در یه فایل با پسوند js. ذخیره کردم.
و
در صفحه masterpage
کدها به این صورت شد

<script type="text/javascript" src="jquery-1.7.min.js"></script>
<script type="text/javascript" src="MyJavaScript.js">

</script>


حالا در Ie6 وقتی رو منو میرم منو یه کم بالا می پره در حالی که باید ثابت باشه جاش.
وقتی فایل جاوااسکریپت خارجی رو حذف میکنم و به روال سابق جاوااسکریپت رو درون صفحه masterpage می نویسم مشکل حل میشه البته بعد از اینکه کامپیوتر خاموش و دوباره روشن بشه.
که فکر می کنم مربوط به کش شدن jquery باشه.
البته با FF مشکلی نداره.

می خواستم بدونم مشکل از کجا می تونه باشه؟
ممکنه از استاندارد نبودن Menu باشه؟ یا وقتی از jquery استفاده می کنیم نباید javascript خارجی داشته باشیم؟
راستی یادم رفت بگم، از Asp.net و Vs2008 استفاده می کنم.
تشکر

aminghaderi
جمعه 18 آذر 1390, 18:25 عصر
من فکر می کنم مشکل مربوط به استفاده فایل js با jquery هست.
البته فقط در ie6 .
شما ابتدا فایل jquery رو اینپرت کن و بعد فایل js ببیند درست نمی شود؟؟؟
در کل زیاد به ie6 اهمیت ندید ، چون دیگه واقعا عمرش رو کرده و جز منسوخ شده ها است.
پایه نمایش وبسایتتون رو بروی ie7 قرار بدید چون بیشتر از استاندارد ها پیروی می کنه تا ie6 و ورژن های پایین تر.

موفق باشید.

bftarane
جمعه 18 آذر 1390, 18:43 عصر
منظورتون از اینپرت در Vs چیه؟ خوب من فایل jquery-1.7.min.js رو که قبلاً کپی کرده بودم در Solution Explorer. مدتی بعد هم از طریق Add new Item فایل با پسوند js ایجاد کردم و کدها رو به اونجا منتقل کردم.
اگه منظورتون همون Import هستش پیدا نکردم تو منوها. کجاست؟

aminghaderi
جمعه 18 آذر 1390, 18:54 عصر
بله همون ایمپورت (Import) هست.
به این صورت عمل کنید :


<script type="text/javascript" language="javascript" src="jquery-1.7.min.js"></script>
<script type="text/javascript" language="javascript" src="MyJavaScript.js"></script>

language="javascript"
این مورد رو دقت داشته باشید.

bftarane
جمعه 18 آذر 1390, 19:47 عصر
درست نشد. ولی انگار یه کم با قبل تفاوت وجود داشت.

به هر حال با IE8 امتحان کردم (در حالتی که اون دو خط کد شما استفاده کرده بودم).
با IE8 که درست کار می کرد.
پس به احتمال قوی مشکل از ie6 هستش.

fakhravari
جمعه 18 آذر 1390, 19:50 عصر
با سلام
من خودم به شخصه که از قالب اماده استفاده میکنم بعضی اوقاط وقتی یه مثالی مثل بالا میزاشتم در فرم اخطار میگرفت .
به شما بیشنهاد میکنم از
<iframe frameborder="no" src="ادرس" scrolling="yes" width="533" height="188"></iframe>
استفاده کنید.

bftarane
جمعه 18 آذر 1390, 20:58 عصر
ببخشید متوجه نشدم. iframe رو به جای چی استفاده کنم؟

fakhravari
جمعه 18 آذر 1390, 21:05 عصر
ببنید یه پیج حالا از نوع html بسازید و مثال خودتون بزارید حالا با دستور بالا که دادم اونو فراخونی کنید.
بیشتر برای مثال هایی مثل اسلاید شو و لینک های تبلیغاتی کاربرد داره

aminghaderi
شنبه 19 آذر 1390, 01:31 صبح
از IFrame اینجا نمی شه استفاده کرد ، ایشون می خواهند کد های نوشته شده خودشون رو طبق استاندارد W3C و SEO به شکل یه فایل خارجی به برنامه ایمپورت کنند.
که خوب مثل همیشه IE6 کار رو خراب کرده؟!
IE8 درست کار می کنه پس IE7 رو هم ساپرت می کنه ، IE6 رو هم که فراموش کنید ، کاربری ازش استفاده نمی کنه ، اون کسی هم که بخواد بعد این همه مدت هنوز با اون کار کنه بگذارید سایت شما رو به شکل بهم ریخته ببینه درثانی شما در سایتتون از JQuery استفاده می کنید ie6 منابع زیادی از سیستم رو اشغال می کنه و اون کسی که بخواهد سایت رو با ie6 باز کنه خدا به حال cpu و ram سیستمش روهم کنه ، اون فن cpu که دیگه ....