mehdi58
چهارشنبه 28 فروردین 1387, 08:30 صبح
سلام
همونطور که می دونین برای این کار هیچ Event ای وجود نداره اما با یه کلک می شه اون رو حدس زد .
من کد زیر رو توی تگ BODY قرار می دم و از طریق اون می تونم بفهمم که کاربر روی دکمه Close پنجره کلیک کرده یا نه ؟
<BODY onbeforeunload="java script : if (event.clienty)<0 { window.open('closedPage.aspx')}">
در حقیقت با استفاده از event.clienty می تونین موقعیت اشاره گر ماوس رو در قاب داخل پنجره ( و نه اسکرول بار و ... ) داشته باشین و بنابراین وقتی کاربر روی دکمه Close کلیک کرد چون این مقدار در شرط ما صدق می کنه پس کاربر به صفحه ای که ما می گیم هدایت می شه .
حالا شما هر کاری که دلتون بخواد می تونین توی Page_Load اون صفحه انجام بدین .
البته این رو هم بگم که این روش با فشردن کلیدهای ALT + F4 توسط کاربر سازگاری نداره که شما می تونین با هندل کردن دکمه های کیبورد این مشکل رو هم حل کنین .
اما یه اتفاق بد ...
اگه کاربر روی دکمه Refresh یا Back و Forward کلیک کنه ، اون وقت دو تا پنجره باز می شه و دقیقا من توی همین گیر افتادم .
آیا این امکان وجود داره که یه جوری جلوی این کار رو گرفت؟
همونطور که می دونین برای این کار هیچ Event ای وجود نداره اما با یه کلک می شه اون رو حدس زد .
من کد زیر رو توی تگ BODY قرار می دم و از طریق اون می تونم بفهمم که کاربر روی دکمه Close پنجره کلیک کرده یا نه ؟
<BODY onbeforeunload="java script : if (event.clienty)<0 { window.open('closedPage.aspx')}">
در حقیقت با استفاده از event.clienty می تونین موقعیت اشاره گر ماوس رو در قاب داخل پنجره ( و نه اسکرول بار و ... ) داشته باشین و بنابراین وقتی کاربر روی دکمه Close کلیک کرد چون این مقدار در شرط ما صدق می کنه پس کاربر به صفحه ای که ما می گیم هدایت می شه .
حالا شما هر کاری که دلتون بخواد می تونین توی Page_Load اون صفحه انجام بدین .
البته این رو هم بگم که این روش با فشردن کلیدهای ALT + F4 توسط کاربر سازگاری نداره که شما می تونین با هندل کردن دکمه های کیبورد این مشکل رو هم حل کنین .
اما یه اتفاق بد ...
اگه کاربر روی دکمه Refresh یا Back و Forward کلیک کنه ، اون وقت دو تا پنجره باز می شه و دقیقا من توی همین گیر افتادم .
آیا این امکان وجود داره که یه جوری جلوی این کار رو گرفت؟