PDA

View Full Version : خبر: نا هماهنگی منو با آدرس های فارسی



css-man
دوشنبه 11 دی 1391, 14:52 عصر
ما یه اسکریپتی نوشتیم که روی هر لینکی از منو کلیک شد رنگ اون منو تغییر کنه
درست هم کار میکنه ولی با آدرس های فارسی نه

مشکل از چیه؟





//<![CDATA[ jQuery(function() { jQuery('#head #nav li').each(function() { newURL = window.location.protocol + "//" + window.location.host + window.location.pathname; var href = jQuery(this).find('a').attr('href'); if (href === newURL) { jQuery(this).addClass('current'); } }); }); //]]>

hakan648
سه شنبه 12 دی 1391, 15:44 عصر
سلام

فکر میکنم منظورتون این باشه : منویی که آدرسش با صفحه ی جاری برابر باشه ، تغییر رنگ بده .
اگه منظورتون رو درست متوجه شده باشم ، کدی که نوشتید اضافه و ناکارا هست.

و اما مشکلی که در همین کد وجود داره :

1- این کد فقط آدرس رو تا قبل از QueryString بدست میاره ، اگر صفحات شما مثل سایت برنامه نویس از QueryString تشکیل شده باشند ، نتیجه اشتباه میشه.

2- آدرس های فارسی بصورت encode شده در برنامه دریافت میشن ، برای تبدیل آدرس کد شده به آدرس کدنشده از تابع decodeURI استفاده کنید.

var pageName = location.pathname,
decodedPageName = decodeURI(pageName);

// page : /فارسی.html
// pageName : /%D9%81%D8%A7%D8%B1%D8%B3%DB%8C.html
// decodedPageName : /فارسی.html

css-man
دوشنبه 02 بهمن 1391, 11:39 صبح
اینو به کد بالا اضافه کنم درست میشه؟

hakan648
دوشنبه 02 بهمن 1391, 15:54 عصر
یعنی چی "به کد بالا اضافه کنم" ؟؟
باید آدرس رو توسط تابع decodeURI ، دکد ( Decode ) کنید.
برای فهم بهتر هم کافیه یکبار در برنامتون مقدار متغییر newURL رو با alert نمایش بدید ، و یکبار هم مقدار decode شدهی اون رو ، اونوقت متوجه داستان میشید.
در پست قبلی هم کامل توضیح دادم ، بیشتر دقت کنید.

موفق باشید ...