15 Ekim 2012 Pazartesi

window.open ve window.opener

Window.open ile bir sayfanın içinden diğer bir sayfayı açabiliriz.

var newWindow=window.open('deneme2.html');

daha sonra
newWindow.document.getElementById('') 
diyerek açtığımız sayfadaki istediğimiz bir htmlelement e müdahale edip sayfanın içeriğini ana sayfadan değiştirebiliriz. Anasayfadan 2. açılan sayfaya ulaşım bu şekilde sağlanabilir.

2. sayfadan anasayfaya ulaşım ise opener kullanılarak yapılır.

window.opener.document.getElementById('') 

diyerekten 2. sayfadan anasayfaya ulaşabilir ve içeriğini değiştirebiliriz. Ayrıca anasayfada tanımlanmış herşeye de ulaşabiliriz. window.opener bize anasayfanın window elementini döndürür. Yani anasayfanın tüm özellikleri elimizdedir.

Dikkat edilmesi gereken bir konu olarak sayfaların 2 si de en azından http protokolü kullanıyor olmalıdır.
Eğer protokol yoksa sayfalar arası erişime izin verilmez.

Aşağıdaki örneklerde deneme1.html anasayfa, deneme2.html de açılan sayfadır.

//deneme1.html

<!DOCTYPE html>
<html>
<body>

<h1>My First Heading</h1>

<p>My first paragraph.</p>

<button type="button" onclick="denemeFunction1();">Click Me!</button>
</body>
</html>
<script>
var denemeVar = 12345;
function denemeFunction1(){
var newWindow=window.open('deneme2.html');
window.top.deneme1=1;
window.top.deneme2=2;
window.top.deneme3=3;
window.top.deneme4=4;
window.top.deneme5=5;
window.top.deneme6=6;
}
</script>


//deneme2.html

<!DOCTYPE html>
<html>
<body>

<h1>My First Heading</h1>

<p>My first paragraph.</p>

<button type="button" onclick="denemeFunction2();">Click Me!</button>
</body>
</html>
<script>
function denemeFunction2(){
var i=0;
for(var j=0;j<15;j++){
j++;
}
alert(window.opener.denemeVar);
alert(window.opener.top.deneme3);
}
</script>

Hiç yorum yok:

Yorum Gönder