View Full Version : بررسی موجود بودن فایل در آدرس خاص و جایگزینی رشته ای در کدهای وبلاگ (باجاوااسکریپت)
ali abedian
یک شنبه 17 شهریور 1392, 00:20 صبح
سلام .. نمیدونستم اینو توی کدوم بخش مطرح کنم دقیقاً .. به هر حال موضوع از این قراره که:
من توی طراحی قالبهای بلاگفا میخوام یه طوری کنم که مثلاً وقتی آدرس یه فایل css روی یه سروری موجود نبود، اونوقت یه فایل css از یه آدرس دیگه روی سرور دیگه انتخاب و لود بشه و در نهایت قالب بلاگفا بر اساس همین فایل css نمایش داده بشه.
امیدوارم چیزی رو که میخواستم واضح توضیح داده باشم.
حالا ممنون میشم نظراتتون رو بفرمایید..
قبلش هم یه توضیحی دیگه ای بدم که من فکر میکنم با جاوا اسکریپت بشه همچین کاری کرد ولی چند تا چیز در جاوااسکریپت رو نمیدونم:
۱. اینکه چه دستوری در جاوا اسکریپت هست که موجود بودن یک فایل در یک آدرسی رو بررسی میکنه؟
۲. مثلاً فرض کنید من با اون دستور جاوااسکریپت در بند ۱ ، مطمئن شدم که فایل style.css در آدرس
http://www.server1.ir
وجود داره ، حالا میام میگم اگر این فایل در اون آدرس موجود بود پس مقدار URL برابر باشه با http://www.server1.ir .. که در ادامه تصمیم دارم این url رو در بخشهای بخشهای مختلف در کدهای بلاگفا استفاده کنم.
مثلاً کدهای زیر رو در نظر بگیرید:
<link href="URL/style.css" rel="stylesheet" type="text/css" />
حالا من میخوام به جای این URL در هر جایی از کدهای بلاگفا ، این آدرس قراربگیره
"URL= "http://www.server1.ir
ممنون میشم راهنمایی کنید
متشکرم
SilverLearn
یک شنبه 17 شهریور 1392, 01:49 صبح
این رو ببین و ازش الهام بگیر : http://stackoverflow.com/questions/3646914/how-do-i-check-if-file-exists-in-jquery-or-javascript
ali abedian
یک شنبه 17 شهریور 1392, 09:40 صبح
سلام دوست من .. بسیار سپاسگزارم .. ممنون میشم تا به نتیجه رسیدن این تحقیق با من همراهی کنید..
من با راهنمایی شما به اون صفحه رفتم و در نتیجه به این صورت دارم این کد رو استفاده میکنم:
<link href="style.css" onerror="imgError()" rel="stylesheet" type="text/css" />
که در صورت بروز خطا که همون لود نشدن فایل سی اس اس مورد نظرمون هست، به این فانکشن از جاوااسکریپت ارجاع داده میشه:
<script type="text/javascript">
function imgError()
{
alert('سرور قالب وبلاگ متاسفانه قطع میباشد');
}
</script>
البته این دستور {
onerror="imgError()" } در اینترنت اکسپلورر برای فقط این تگ ها استفاده میشه <img>, <object>, <script>, <style>
خب میشه به ناچار از این دستور استفاده کرد
<script type="text/javascript" src="http://www.server.ir/test.jsp" onerror="imgError()"></script>
که در واقع test.jps کنار فایل style.css قالب وبلاگ ما وجود داره و میشه با این روش صحت اتصال به سرور رو بررسی کرد (به ناچار)
.................................................. .......
تا اینجا با script ظاهراً که درست جواب داده توی همه ی مرورگرها.. البته یه سری مشکلاتی هست که چند تا سوال برام مطرح میشه:
۱. این دستورات روی چه نسخه هایی از مرورگرها اجرا میشن؟ منظورم اینه که لااقل از مرورگر اینترنت اکسپلورر ۶ به بالا اجرا بشه و نسخه های قدیمی مشابه در زمان فایرفاکس و گوگل کروم (که البته کروم آپدیت میشه مهم نیست خیلی)
۲. اینجا دستور جاوا به این مورد پرداخته که فقط پیغام { متاسفانه سرور قالب وبلاگ موقتا قطع می باشد } نمایش داده بشه .. در صورتی که من میخوام به این سمت هدایتش کنم که مسیر فایل سی اس اس جدیدی رو معرفی کنم و قالب از روی اون سی اس اس جدید لود بشه
۳. نمیشه به جای اون دستور جاوا اسکریپت یه چیز دیگه ای بذاریم که نیاز به جاوا نداشته باشه (چون ممکنه برخی مرورگرها جاواشون فعال نباشه).. که البته فقط قصدم رسیدن به هدفی هست که در بند دو اشاره کردم بهش و بس.
۴. در صورتی که در بند ۳ نمیشه به غیر از جاوا کار کرد، به من بگید با چه دستوری میشه شناسایی کرد که جاوااسکریپت در مرورگری فعال نیست ، تا با پیغامی، بازدیدکننده رو به اون سمت ببرم که جاوا رو فعال کنه (هر چند الان اکثر مردم برای استفاده بهتر از امکانات وب ، نیاز به فعال بودن جاوااسکریپت در مرورگرها دارن ( اگر این گفته من اشتباه است ، لطفا در این زمینه هم راهنمایی بفرمایید)
بی صبرانه منتظر پاسخ های مفید شما هستم
refugee
یک شنبه 17 شهریور 1392, 10:46 صبح
یادمه ت جاوا اسکریپت برا عوض کردن رشته ها یه تابع پیشفرض بود .
پس اگه بتونید از طریق اون تابع بجای پیغام جایگزین ادرس کنید مشکلتان حل میشه .
{
alert('سرور قالب وبلاگ متاسفانه قطع میباشد');
}
ali abedian
یک شنبه 17 شهریور 1392, 12:19 عصر
مشکل حل شد.. تا اینجا به هدفم رسیدم.. انشاء الله بعد از تکمیل شدن و عملی شدن ارائه میدم
متشکر از همه ی دوستان
ali abedian
یک شنبه 17 شهریور 1392, 12:25 عصر
بالاخره مشکلم حل شد.. دوستان در صورت تمایل می تونن از این روش استفاده بهینه کنن..
<link id="style" rel="stylesheet" type="text/css" href="http://www.server1.ir/theme/style.css">
<script type="text/javascript">
function CSSnewURL()
{
document.getElementById("style").href="http://www.server2.ir/theme/style.css";
}
</script>
<script type="text/javascript" src="http://www.server1.ir/theme/test.jsp" onerror="CSSnewURL()"></script>
اگه توضیح خواستین بگین تا بدم
متشکر از همه که باعث شدن تا به هدفم برسم
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.