View Full Version : غیر فعال کردن دکمه back
nargesi
سه شنبه 10 مرداد 1385, 22:42 عصر
سلام دوستان
کسی راهی میدونه که وقتی در یک صفحه ای میایم دکمه back مرورگر( browser ) غیر فعال بشه و نشه به عقب برگشت؟
ممنون
pooyanm
چهارشنبه 11 مرداد 1385, 09:05 صبح
این سوال قبلا پرسیده شده. اگه جواب شما در اونها نیست بفرمایید که دقیقا چه عملکردی را می خواهید. مثلا چیزی شبیه صفحات cache نشده offline در Gmail که به همون روشهای بحث شده امکان پذیره.
nargesi
چهارشنبه 11 مرداد 1385, 12:54 عصر
نه منظورم این نیست که مثل gmail باشه منطورم اینه که مثلا شما الان از یک صفحه ای به این صفحه اومدید به browser که نگاه کنید ببینیدکه نشه back کرد بعد هم که از این صفحه خاص خارج شدین دوباره back کار کنه
آیا کدی هست که در صفحه بنویسیم و برای این صفحه دکمه را غیر فعال کرد تا به دلایلی کاربر به صفحه قبل بر نگردد
اگرم تکراریه شرمنده لطفا لینک صفحه را بدید ممنون
someCoder
چهارشنبه 11 مرداد 1385, 13:23 عصر
تکراری که هست، اما راهی که من الان به فکرم رسید قبلا ندیده بودم جایی بگن، امیدوارم به دردت بخوره. کلا که بعید میدونم بشه BACK رو غیر فعال کرد، چون از نظر security کار خوبی نیست که browser تا این حد اجازه بده که برنامه شما بر کامپیوتر کنترل داشته باشه.
اما میشه یه کار دیگه کرد. مثلا این که اصلا دکمه back فعال نشه! برای این کار کافیه که شما صفحه رو به طور کامل هیچ وقت postback نکنید! خوب چطور؟ آسونه! با AJAX. اگر در مورد ajax هم سوال دارید که من خودم هم تازه کارم اما یکی از دوستان در یک تاپیک مخصوص همین کار آموزش ajax رو شروع کرده بود
angel_boy013
چهارشنبه 11 مرداد 1385, 15:07 عصر
میشه آدرس تاپیک رو اینجا بزاری یا برای من بفرستی
pooyanm
پنج شنبه 12 مرداد 1385, 09:57 صبح
امکان غیرفعالکردن این دکمه مرورگر وجود نداره چون کاربردی مفیدتر از سردرگمی کاربر نداره.
اگر میخواهید صفحه شما در cache کاربر قرار نگیره به نشانیهای زیر بروید دو کاربرد دستور زیر در آنجا گفته شده. در این شرایط وقتی کاربر Off-line باشه نمی تونه به اون صفحه برگرده چون اثری از اون باقی نمونده. لطفا بگید این را برای چه کاری میخواهید مطمئنا راهحل بهتری برای اون هست.
جلوگیری از caching صفحه (مفید برای صفحات مدیریت):
http://www.barnamenevis.org/forum/showthread.php?t=46656
جلوگیری از caching تصویر:
http://www.barnamenevis.org/forum/showthread.php?t=47369
علاوه بر اینها در مورد پاسخهای ایجکس(AJAX) هم کاربرد آن الزامی است:
response.setHeader("cache-control","no-cache");
امیدوارم که نیازتون برطرف بشه و اگر کاربرد دیگری مدنظر شماست همینجا بگید تا دوستان کمک کنند.
someCoder
پنج شنبه 12 مرداد 1385, 10:53 صبح
میشه آدرس تاپیک رو اینجا بزاری یا برای من بفرستی
http://www.barnamenevis.org/forum/showthread.php?t=39585&highlight=ajax
nargesi
پنج شنبه 12 مرداد 1385, 16:10 عصر
برای گیج کردن کاربر نمی خوام!! برای یک قسمت از کاری لازم بود دکمه back غیر فعال بشه وگرنه اگر کاربر به عقب بر می گشت اطلاعات خراب میشد ما این مشکل را با باز کردن پنجره جدید حل کردیم (یعنی فکر کنم اینجور حل کردن چون مشکل یکی از دوستانم بود )چون وقتی پنجره باز می کنیم دکمه نداره window.openاما می خواستم ببینم آیا واقعا راهی برای از کار انداحتن back نیست؟؟
someCoder
جمعه 13 مرداد 1385, 13:56 عصر
برای گیج کردن کاربر نمی خوام!! برای یک قسمت از کاری لازم بود دکمه back غیر فعال بشه وگرنه اگر کاربر به عقب بر می گشت اطلاعات خراب میشد ما این مشکل را با باز کردن پنجره جدید حل کردیم (یعنی فکر کنم اینجور حل کردن چون مشکل یکی از دوستانم بود )چون وقتی پنجره باز می کنیم دکمه نداره window.openاما می خواستم ببینم آیا واقعا راهی برای از کار انداحتن back نیست؟؟
منم برای گیج کردن کاریر نگفتم. کلا هم تا جایی که من میدونم تنها روشش همینه که گفتم
nargesi
جمعه 13 مرداد 1385, 18:07 عصر
امکان غیرفعالکردن این دکمه مرورگر وجود نداره چون کاربردی مفیدتر از سردرگمی کاربر نداره.
منظورم شما نبودین
منم برای گیج کردن کاریر نگفت
به هر حال ممنون
pooyanm
شنبه 14 مرداد 1385, 02:24 صبح
راستش به طوری که من دیدم مشکل بازگشت به عقب همیشه با گزینههای session در سمت سرور حل میشه ولی نه برای صفحات static. و امکان غیر فعال کردن دکمهها هم نیست. ولی شما هم دقیقا نگفتین مشکل به چه شکل بروز می کنه؟
nargesi
سه شنبه 17 مرداد 1385, 17:45 عصر
من خودم مشکل دقیق نمی دونم اما حتما اینجور بوده که با session حل نمی شده به هرحال چیزی که من فهمیدم مثل اینکه ظاهرا با جاوا اسکریپت نمیشه دکمه back رو غیر فعال کرد
once4ever
سه شنبه 17 مرداد 1385, 18:07 عصر
پیشنهاد میکنم حتما نوع برنامه و اسکریپتتون را به شکلی عوض کنید تا نیاز به این کارها نداشته باشید.
hamid_h671
پنج شنبه 26 مرداد 1385, 17:35 عصر
من شاید بتونم مشکل ایشونو توضیح بدم .
وقتی صفحه ای داریم که در آن ثبت اطلاعات در database صورت می گیرد ، پس از ثبت اگر کاربر مجددا کلید Back را بزند باز هم امکان استفاده از دکمه ثبت اطلاعات را دارد و اگر دوباره کلیک کند ثبت اطلاعات مجددا صورت می گیرد . منهم این مشکل را با window.open حل کردم ولی خیلی خوشم نیومد.
pooyanm
جمعه 27 مرداد 1385, 15:42 عصر
کنترل این رفتار با تعیین attribute از session در سمت سرور انجام پذیره. در این صورت کاربر شما فقط یک بار اجازه فرستادن فرم را داره. در ضمن با غیرفعال کردن js در مرورگر متد window.open هم برای همیشه از کار خواهد افتاد!
پس یک attribute به session کاربر اضافه کنید که قبل از فرستادن فرم مقدار false و بعد از آن مقدار true را داشته باشه و در ضمن از cache شدن صفحه فرم جلوگیری کنید و نتیجه ارسال را هم حتما تغییر مسیر دهید.
hamed_m
شنبه 28 مرداد 1385, 10:15 صبح
ممکنه این: http://www.htmlgoodies.com/beyond/javascript/article.php/3471181 بدردتون بخوره.
pooyanm
شنبه 28 مرداد 1385, 10:44 صبح
ممکنه این: http://www.htmlgoodies.com/beyond/javascript/article.php/3471181 بدردتون بخوره.
این روش JavaScript برای اینکاره. که مطمئنا مشکل ایجاد میکنه با روش کنترل روی Session کاربر این مشکل کاملا منتفی میشه. من همین روش session را به کار بردم هیچ نقصی در کار اون پیش نمیاد و کاملا مطمئنه.
vahab_vb
دوشنبه 13 شهریور 1385, 11:31 صبح
آقای pooyanm میشه یه توضیحی به همراه مثال در مورد همین کارتون با session بگید ؟
مرسی
pooyanm
چهارشنبه 15 شهریور 1385, 07:37 صبح
آقای pooyanm میشه یه توضیحی به همراه مثال در مورد همین کارتون با session بگید ؟
مرسینمونه ها مربوط به ویرایش مشخصات کاربران و رمز عبور اونا و همین طور صفحه ارسال نظرات بازدید کنندگان میشه(guestbook)
اگر همین ها را لازم داری تا یک نمونه الگوریتم مورد اونا بفرستم.
vahab_vb
چهارشنبه 15 شهریور 1385, 07:58 صبح
ممنون میشم
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.