View Full Version : سوال: چطور میشه فعال بودن javascript رو تست کرد ؟
atn_1366
پنج شنبه 10 بهمن 1387, 02:12 صبح
سلام به دوستان عزیز ...
من یه صفحه html دارم که درونش از یسری script استفاده کردم ... توی اینترنت سرچ کردم دیدم برای اینکه بشه تست کرد که آیا javascript در سیستم کاربر فعال هست یا نه از <noscript> استفاده میشه ...
مشکل من اینجاست که میخوام اگر javascript فعال نبود صفحه redirect بشه به یه صفحه دیگه برای همین من کد زیر رو دقیقاً بعد از <BODY> قرار دارم :
<noscript>
<meta http-equiv="refresh" content="0; url=http://www.example.com">
</noscript>
*** البته میدونم که استفاده از meta در داخل body استاندارد نیست ولی این کد هم در IE و هم در Firefox جواب میده فقط یه مشکل داره !!! -------------------->>>>>
مشکل اینه که صفحه من دارای تصاویر زیادی است و سنگین است و این کد در اول اجرای صفحه عمل نمیکنه بلکه وقتی عمل میکنه که صفحه کاملاً لود بشه ...
حالا میشه بفرمایید که چطوری میشه کاری کرد که همون اول اجرای صفحه تست صورت بگیره ؟؟؟
ببخشید که سوالم طولانی شد !!!
atn_1366
پنج شنبه 10 بهمن 1387, 13:46 عصر
با سلام مجدد ...
هنوز هیچ کس از دوستان نتونسته مشکل من رو حل کنه !!!
من منتظر جواب شما دوستان هستم
باتشکر
shamsoft
پنج شنبه 10 بهمن 1387, 13:53 عصر
خب تو تگ Head بزارش!
atn_1366
پنج شنبه 10 بهمن 1387, 16:32 عصر
shamsoft جان این کار رو هم کردم ... باز هم در آخر که صفحه لود میشه اجرا میشه !!!!!!!!!!!!
این راه هم جواب نداد ؟؟؟
راه دیگری به ذهنتون نمیرسه ؟
shamsoft
پنج شنبه 10 بهمن 1387, 17:10 عصر
اگر صفحه شما PHP ساپورت می کنه از تابع Header استفاده کن:
header('Location: http://www.example.com/');
جز این دو تا راه دیگه راهی بلد نیستم. راه سومی که نمیشه استفاده کرد یکی از توابع JS هست
atn_1366
پنج شنبه 10 بهمن 1387, 18:23 عصر
بازهم ممنون ...
خوب کد php رو در html میشه بین php?> و <؟ قرار داد و بعد فایل html رو با پسوند php ذخیره کرد ... اونوقت کدهای php هم درست عمل خواهند کرد ... درسته ؟؟؟؟؟
من با همین روش بالا این کد رو هم استفاده کردم ولی جالب اینجاست که اصلاً این کد عمل نمیکنه ... یعنی اصلاً redirect انجام نمیشه ...
من حتی از include هم استفاده کردم ولی اون هم جواب نداد !!!!!!!!!
دیگه یواش یواش دارم دیوونه میشم ...!!!!!!!!!!!!!
تعداد صفحات زیاد هست وگرنه اول یه صفحه برای تست javascript قرار میدادم و بعد وارد صفحه اصلی میشد ... اینجوری میشد ولی خوب صفحات زیاد هست و تقریباً نمیشه اینکارو کرد !!!!!!
من باز هم منتظر راه کارهای دیگری از دوستان هستم با تشکر .
atn_1366
پنج شنبه 10 بهمن 1387, 18:38 عصر
مطمئن نیستم ولی فکر کنم که مشکل اینجاست که وقتی تگ php رو بین <noscript> قرار میدیم ... دیگه دیده نمیشه !!!!
درسته ؟؟؟ اگه درسته آیا راه حلی داره ؟؟؟
sepehrmm
پنج شنبه 10 بهمن 1387, 23:02 عصر
استفاده از php برای کار شما بکل غلطه چون با php نمیشه فهمید که مرورگر JS رو ساپورت میکنه ( البته با برسی اینکه چه مرورگری و چه ورژنی صفحه رو درخواست داده میشه فهمید که راهی کاملا ... است ) یا JS مروگر فعال هست یا نه ( اینو که هیچ جوره نمیشه با php متوجه شد )
تنها راهی که به نظرم میرسه اینه که اون صفحه ای که میخوای اگه JS موجود نبود باز شه رو صفحه اصلی قرار بدی و توش کد JS بزاری که اگه JS فعال بود redirect کنه به صفحه با کد JS
که روش خوبی نیست چون 90% مرورگرا JS دارن و این برای بیشتر بازدید کنندگان سایت اذیت کننده است .
atn_1366
جمعه 11 بهمن 1387, 01:07 صبح
بله ، دقیقاً همینطوره ...
دیگه نمیدونم ... باید چیکار کرد ...!!!
راستش از شما چه پنهون که در یسری از انجمن های انگلیسی هم این سوال رو پرسیدم ولی از اون ها هم جواب درستی نگرفتم !!!
حالا اجازه بدید من یه جور دیگه مشکل رو مطرح کنم ::::
من یه صفحه html دارم با حدود 100 عکس و یسری اسکریپت جاوا ، عکس ها با lightbox بزرگ میشن و خلاصه چون عکس ها برام خیلی مهم هستند کلی با کدهای جاوا تقریباً کاری کردم که نشه اون ها رو کپی کرد ( البته میدونم که هیچ وقت 100 درصد نیست ولی میشه ازش جلوگیری کرد ) ...
ولی وقتی جاوا وجود نداره یا کاربر جاوا رو در مرورگر خودش غیرفعال کنه براحتی صفحه لود میشه و تمام این اسکریپت های امنیتی نادیده گرفته میشن برای همین میخوام اول جاوا تست شده و اگه جاوا فعال نبود اصلاً صفحه لود نشه !!!
من خودم یه راهی تقریباً پیدا کردم این مشکل رو بر طرف میکنه ولی مشکل دیگه ایجاد میشه ...!!!
من کلی نرم افزار های HTML ENCRYPT & PROTECT دانلود کردم و اکثر اونها رو تست کردم ... چند تا از اونها وقتی source رو کد میکنن خودشون این تست رو با noscript قرار میدن در سورس که به درستی هم عمل میکنه و اگر کاربر java نداشته باشه اصلاً صفحه لود نمیشه ... و مشکل اینجاست که برای یسری از اینها که اصلاً کرک پیدا نکردم و همشون هم با زبان فارسی مشکل دارن و نوشته های فارسی رو بهم میریزن ...
به نظر شما استفاده از این نرم افزار های امنیتی کار درستی هست یا نه ؟؟؟
باتشکر مجدد بابت توجه شما .
sepehrmm
جمعه 11 بهمن 1387, 14:29 عصر
جواب یهو اومد تو ذهنم:شیطان::متفکر:
اینکارو کن :
<html>
<head>
<title></title>
</head>
<body>
<script> document.write("<b>JS IS ON</b>");
document.write('<img src="picture.jpg"/>');
</script>
</body>
<noscript>
JS IS OFF!
<meta http-equiv="refresh" content="0; url=http://www.example.com">
</noscript>
</html>
فهمیدی؟ از write() برای ایجاد صفحه استفاده کردیم که اگر طرف JS نداشت براش لود نمیشه پس در اینصورت دو صفحه کاملا مجزا داریم خوبیش اینه که اگه طرف JS رو خاموش کنه صفحه کامل لود نمیشه ولی شاید برای کار شما که نمیخواهی طرف کد رو ببینه مشکل ایجاد کنه (کلیک راست و ... غیر فعال نمیشه ) پس خودت دست به کار شو و تو قسمت <scrpit></scrpit> کدی بنویس که بیاد کد صفحه اصلیتو از درون یه فایل تو سرور لود کنه ، سخته نه؟!:متفکر:
به نظر شما استفاده از این نرم افزار های امنیتی کار درستی هست یا نه ؟؟؟
من کار نکردم باهاشون و تجربه ای ندارم نمیتونم کمکت کنم شرمنده:لبخندساده:
atn_1366
جمعه 11 بهمن 1387, 18:23 عصر
sepehrmm جان ... باز هم از راهنمایی شما ممنون ...
فکر نمیکنم هیچ کاری سخت باشه فقط نیاز به تلاش و صرف کمی زمان داره ...!!!
حتماً این روش رو هم تست میکنم و به شما اطلاع میدم ...
با تشکر
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.