اضافه كردن back و forward به ajax (مثل اينجا.) بازديد ها: 1439 , پاسخ ها: 9
[ تبليغات ] انجام پروژه هاي برنامه نويسي انجام پروژه هاي برنامه نويسي توسط تبم نرم افزاری پارس با پشتیبانی شرکت انديشه پرور سلام
عباس جون مرسی
خیلی به این نیاز داشتم برم ببنینمش
موفق باشید
يه بار ديگه توضيح ميدم چون ميدونم خيلي چيز به درد بخوريه...توي لينك بالا كاراي چرت زيادي كرده و نتيجه كار خودم رو اينجا ميگم.
1- با تغيير hash در firefox (درie نه.) به طور خودكار back & forward اضافه ميشه.به همين خاطر ما از اين استفاده ميكنيم.
کد: انتخاب همه window.location.hash = " "2- يه دونه input مخفي بايد توي صفحه حتما داشته باشيم.
3- يه دونه setInterval براي چك كردن مدام hash كه اگه تغيير كرد.(يعني طرف روي لينك ها كليك نكرده باشه و فقط از دكمه هاي back & forward استفاده كرده باشه.) ما بفهميم و براش صفحش رو لود كنيم.
input مخفي هم براي گذاشتن يه شرط داخل تابع setInterval مون هست كه اگه مقدار hash با input برابر نبود اون وقت برابرشون بكنيم و صفحه مورد نظرمون رو لو كنيم.(دقيقا براي تفكيك كليك كردن روي لينك و كليك كردن روي دكمه back & forward هستش.)
ميدونم خيلي بد توضيح دادم...بار دومه ديگه بهتر از اين نميشه.ولي مواد لازم رو گفتم.پختنش با خودتون.
من به ie هم اضافه كردم البته با يه روش ديگه...فقط يه مشكلي دارم واسه setInterval كه مجبورم زمان كار رو زياد كنم...مشكل اينه كه اگه روي لينك يكي كليك كنه ميريم توي تابع اونوقت اگه زمان setInterval برسه، ie تابع رو ولش ميكنه و ميره تابع setInterval رو اجرا ميكنه...!
اگه اين مشكلم برطرف شد در مورد ie هم توضيح خودمو ميگم...
توي ie بايد يه دونه frame تو صفحه داشته باشيم و location ش رو تغيير بديم.(همزمان با ارسال درخواست ajax).
موفق باشيد.
سلام
خسته نباشي ممنون از اينکه جواب ايميل هامو دادي
اقا عباس يه سئوال داشتم اين کد آيجکس منه
کد: انتخاب همه var note='<div class="message-div-static error clearfix"><div class="message-close">ارتباط شما با سايت قطع شده است لطفا دوباره سعي کنيد</div></div>'; function connect(url,data,id,load) { var xmlhttp=false; if(!xmlhttp) { if (window.XMLHttpRequest) xmlhttp=new XMLHttpRequest(); else if (window.ActiveXObject) xmlhttp=new ActiveXObject('Microsoft.XMLHTTP'); } else if(window.XMLHttpRequest){ xmlHttp = new XMLHttpRequest(); } xmlhttp.open('POST', url, true); xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xmlhttp.onreadystatechange = function() { if(xmlhttp.readyState==4 && xmlhttp.status == 200) { document.getElementById(id).innerHTML = xmlhttp.responseText; }else if (xmlhttp.readyState==0 || xmlhttp.readyState==1 || xmlhttp.readyState==2 || xmlhttp.readyState==3) { document.getElementById(id).innerHTML = load; } else { document.getElementById(id).innerHTML = note; } } xmlhttp.send(data); } function rajax(note){ note= note.replace(/&/g,"**med**"); note= note.replace(/=/g,"**morteza**"); note= note.replace(/\+/g,"**cms**"); return note; }کد location رو دقيقا بايد کجاي کد جا بدم ميشه تو اين کد بيشتر توضيح بديد
تشکر
سلام،
من كه نميتونم واست كد بنويسم...توضيحاتم رو بخون و مو به مو طبق اونا عمل كن به نتيجه ميرسي حتما...
موفق باشي.
سلام
خوب برام مو به مو تو اون کد بالا توضیح بده ممنون
سلام،
وقتي داري درخواست ajax ت ارسال (Send) ميكني بايد هش مرورگر رو تغيير بدي.(براي ie بايد location فريم رو تغيير بدي.)
از يه طرف هم بايد يدونه setInterval تو صفحه بگذاري و هميشه چك كني كه اگه طرف دكمه back يا forward رو زد هدايتش كني...حالا چطوري چك كردنش مهمه كه بايد يدوني input مخفي تو صفحه داشتي باشي و مقدارش رو با هش چك كني...
ديگه بايد به نتيجه برسي...
موفق باشي.
سلام
عباس جان
مرسی
تستش می کنم اگه باز مشکل داشتم بهت خبر میدم
ممنون از راهنماییت