# زبان های اسکریپتی > JavaScript و Framework های مبتنی بر آن >  كد جاوا اسكريپت براي باز شدن پنجره popup

## SAMARE

سلام دوستان عزيز

من دنبال يك كد  جاوااسكريپت براي باز شدن پنجره popup‌ميگردم كه تا زمانيكه پنجره popup باز هست كاربر نتونه بر روي صفحه اصلي فوكوس كنه

در ضمن ميخوام اين عمل در رويداد 
SelectedIndexChanged گريدويو انجام بشه

ممنون ميشم كمكم كنيد

----------


## SAMARE

كسي نيست يه راه حل به من پيشنهاد كنه؟؟؟

----------


## eAmin

سلام.

چیزی که مد نظر شما هست، فقط در مرورگر IE بدرستی اجرا می شه، ولی در مرورگرهای دیگه خیر جوابگو نیست.
ولی بنده به شما پیشنهاد می کنم از این  آموزش استفاده کنید: http://javascript.about.com/library/blmodald1.htm

موفق باشید.

----------


## Radmard_Rad

فکر می کنم بهتره به جای استفاده از یک pop up از یک لایه استفاده کنی !
دقیقا می خوای چی کار کنی ؟
------------------------------------------------
همینی که eAmin برات فرستاده .

----------


## SAMARE

ممنون ميشم بيشتر توضيح بديد
منظورتون از لايه چيه؟؟؟

من نتونستم از لينكي كه جناب eAmin براي من گذاشتن چيزي مبني بر باز كردن پنجره popup‌ پيدا كنم!!!

----------


## SAMARE

> فکر می کنم بهتره به جای استفاده از یک pop up از یک لایه استفاده کنی !
> دقیقا می خوای چی کار کنی ؟


ببینید دوست عزیز من یک گریدویو دارم که نام و نام خانوادگی افراد رو نشون میده که در هر سطر گرید دکمه ای بنام ویرایش وجود داره که با کلیک بر روی اون میخوام یه پنجره popup باز بشه و اطلاعات کامل فرد انتخاب شده رو نشون بده!!!

من popup رو برای این کار میخوام و اینکه میخوام تا زمانیکه پنجره popup باز هست کاربر نتونه بر روی پنجره اصلی فوکوس کنه!!!

----------


## Radmard_Rad

باز کردن پاپ آپ راه حل خوبی نیست . اول اینکه خیلی از مرورگرها بلاکش می کنن . دوم هم اینکه واقعا ایده ای ندارم چه طوری می شه صفحه را برای غیز قابل کلیک کنه . 
استفاده از DOM و Ajax راه حل بهتریه . 

1) توی صفحه ات دو تا لایه زیر را قرار بده . 


```
<div id="blanket" style="display:none;"></div>
<div id="pop_up" style="display:none;"></div>
```

2) توابع زیر را به فایلت ضمیمه کن . 


function toggle(div_id) {
    var el = document.getElementById(div_id);
    el.style.display = 'block';
}
function Hide(div_id) { 
    var el = document.getElementById(div_id);
    el.style.display = 'none';
}
function blanket_size(popUpDivVar) {
    if (typeof window.innerWidth != 'undefined') {
        viewportheight = window.innerHeight;
    } else {
        viewportheight = document.documentElement.clientHeight;
    }
    if ((viewportheight > document.body.parentNode.scrollHeight) && (viewportheight > document.body.parentNode.clientHeight)) {
        blanket_height = viewportheight;
    } else {
        if (document.body.parentNode.clientHeight > document.body.parentNode.scrollHeight) {
            blanket_height = document.body.parentNode.clientHeight;
        } else {
            blanket_height = document.body.parentNode.scrollHeight;
        }
    }
    var blanket = document.getElementById('blanket');
    blanket.style.height = blanket_height + 'px';
    var popUpDiv = document.getElementById(popUpDivVar);
    popUpDiv_height=blanket_height/2-325;//150 is half popup's height
    popUpDiv.style.top = popUpDiv_height + 'px';
}
function window_pos(popUpDivVar) {
    if (typeof window.innerWidth != 'undefined') {
        viewportwidth = window.innerHeight;
    } else {
        viewportwidth = document.documentElement.clientHeight;
    }
    if ((viewportwidth > document.body.parentNode.scrollWidth) && (viewportwidth > document.body.parentNode.clientWidth)) {
        window_width = viewportwidth;
    } else {
        if (document.body.parentNode.clientWidth > document.body.parentNode.scrollWidth) {
            window_width = document.body.parentNode.clientWidth;
        } else {
            window_width = document.body.parentNode.scrollWidth;
        }
    }
    var popUpDiv = document.getElementById(popUpDivVar);
    window_width=window_width/2-325;//150 is half popup's width
    popUpDiv.style.left = window_width + 'px';
}
function popup(windowname) {
    blanket_size(windowname);
    window_pos(windowname);
    toggle('blanket');
    toggle(windowname);        
}
function hide(windowname){
    Hide(windowname);
    Hide('blanket');
}


حالا فرض می کنیم می خوای روی یک لینک کلیک کنی و اطلاعاتی را که یک صفجه قراره بهت برگردونه را نشون بدی . 
برای اینکار باید از Ajax استفاده کنی . اینکه چه طوری درخواستت را بگیری و توی یک لایه نمایش بدی را توی یک تاپیک دیگه نوشته بودم

----------


## SAMARE

این لایه ها و توابع رو در كجاي برنامه ام بايد قرار بدم؟؟؟

----------


## Radmard_Rad

با چی می نویسی برنامه ات را ؟
قسمت اول را توی <body> 
اسکریپت ها را هم می نونی توی یک فایل جدا ذخیره کنی ضمیمه کنی به فایلت و یا اینکه توی تگ <script>

----------


## SAMARE

> برای اینکار باید از Ajax استفاده کنی . اینکه چه طوری درخواستت را بگیری و توی یک لایه نمایش بدی را توی *یک تاپیک دیگه* نوشته بودم


 ميشه لينك تاپيك رو بزاريد
ممنونم!!!

----------


## Radmard_Rad

اینجا نوشتم . اگه مشکلت حل نشد کد صفحه هات را بگذار تا با کمک هم درستش کنیم

----------


## hamedafb

چند تا مشكل ديگه هم دارم كه در زير مطرح ميكنم كه اگر جواب بديد خيلي ممنون ميشم
1-من ميخوام اين پنجره popup به طور اتوماتيك با بالا و پايين رفتن صفحه اصلي اون هم بالا و پايين بره و يك جا ثابت نباشه.
2- من ميخوام اين پنجره popup در وسط صفحه باز بشه .
3-من ميخوام اين كد رو در نيوك قرار بدم چون اگه به وب سايتم سر بزنيد ميبينيد كه از سيستم نيوك استفاده ميكنم ولي نميدونم كه بايد اين رو در تم سيستم نيوك قرار بدم با در هدر و يا جاي ديگر.و اينكه اگر بايد در تم نيوك قرار بدم چطور بايد قزار بدم چون تم يك صفحه php است و اونو نميخونه و اينكه ميشه اونو در يك فايل با فرمت js قرار داد و در تم قرار بديم و يا نه .

من فايل اين پنجره popup رو ضميمه ميكنم ممنون ميشم اين تغييرات رو روي اين فايل اعمال كنيد و برام دوباره ضميمه كنيد

----------


## ghanbarloo

اینم می تونی استفاه کنی


```
<body onload="window.open('http://www.tsm6.com , 'DesignerWizWin', 'toolbar=0, location=0, directories=0, menuBar=0, scrollbars=0, resizable=0, width=800, height=600, left=50, top=50');">
```

----------


## sorosh_hatami

[

سلام بر مديريت محترم.
مي ي درخواست داشتم . خيلي وقته ک من براي رفع مشکلم ب خيلي از سايت ها سر زدم ولي مشکلم حل نشد من مشکلمو ميکم اگر براتون مقدور بود برام ي کامن بزاريد و بهم خبر بديد khiabanmusic.loxblog.com
بعضي از سايت ها هنگام باز شدن ي پنجره اول وب مياره بالا و فقط ي گزينه ضرب در داره ک وقتي روي اون کليک ميکني پاپ اپ باز ميشه اينم نمونه وبشه 
http://www.instm.ir/%D8%B3%D8%A7%DB%...B1%D8%A7-.html 
 من اين کد رو دارم  و وقتي تو وبم ميزارم درست کار نميکنه  يعني من ميخوام مثل اين سايت ب نمايش در بياد ولي مثل ي بنر يا ي قسمت از قالب ب نمايش در مياد اينم کدشه


<div id="" class="tinner" style="height: 250px; width: 450px; background-image: none;"><div class="tcontent" style="display: block;">
<img src="http://www.instm.ir/static/images/ramezan.gif">

<br>

<h2 style="line-height:40px; text-align:center; color:#333">در صورت مشاهده صفحات مغاير با قوانين جمهوري اسلامي از قسمت گزارش تخلف به ما اطلاع دهيد</h2>


</div>

----------

