|
Pencere Açma
Prompts & Opening Windows (soru sorma ve pencere açma)
Ziyaretçilere
soru sorma
Değişkenleri öğrendiğimiz zamanı hatırlıyormusunuz?
Değişkenler bilgileri saklamada kullanılıyordu. Örnek ve
alıştırmalarda değişkenlerin 'statik' tariflerini gördünüz, yani
browser değişkenin değerini Javascripti çöalıştırmadan bildiği
durumlar. Halbuki prompt() metodu ile browsere ziyaretçiye soru
sormasını ve cevapları değişken olarak saklamasını söyleyebiliriz.
Bunun hepsi karmaşık görünsede esasında tek satırda iş biter.
var durum = prompt("Kendinizi nasıl
hissediyorsunuz?","iyi yada hasta");
Nasıl cevap verdiğiniz önemli değil, çünkü değişkenle
ilgili bir şey yapmadım henüz. durum değişkeni şu anda Javascript
tarafından ulaşılabilir durumda değil. Eğer sayfa yüklenmeden sizi
cevaplamaya mecbur bıraksaydım ulaşılabilir olurdu. Şimdi sayfa
yüklendi ve artık değişkenler yerleştiremezsiniz. Eğer değişkene
şimdi ulaşmaya çalışsaydım "object undefined" hatası alırdık. (Evet,
değişkenler de nesnedir.)
Şimdi kısaca parantezlerin içindekilerin ne yaptığını
anlatacağım. Önceki dersten hatırlarsınız, parantez içinde
metodların parametreleri vardır. Parametreler metodların ne
yapmaları gerektiğini etraflıca anlatırlar. prompt() metodunun 2
tane parametreye ihtiyacı vardır. Birincisi soru, ikincisi
varsayılan cevaptır. Her iki parametrede " " ile sınırlanıp virgülle
ayrılır. Aman dikkat " ve , arasında boşluk olmamalıdır.
Şimdiye kadar çok iyi gidiyoruz,Soruların nasıl
sorulacağını öğrendik. Şimdi ise, bir script ile ziyaretçiye soru
sorup, ziyaretçinin cevabına göre Alert-box içinde selam verelim. Bu
şekilde cevapları işleyip geçerli kılmasını öğreniriz.
<SCRIPT language="JavaScript">
<!--
var durum = prompt("Kendinizi nasıl hissediyorsunuz?","iyi
yada hasta");
if (durum == "iyi") {
alert("Çok güzel, böyle olmaya devam edin")
} else {
alert ("Geçmiş olsun, hemen bir doktora gidin")
}
// -->
</script>
Kolay değil mi? if-then-else sanırım tanıdık gelmiştir,
değil mi? Böyle oynamak eğlenceli oluyor mu?
Şimdi bir sonraki bölüme geçelim:
Javascriptle pencere açma
HTML ile pencere açmak rutin bir iştir, ama bir takım
sınırlamaları vardır. HTML ile pencerelerin neye benzediğini kontrol
imkanınız yoktur. Hangi özellikler olmalı (scroll bar, status bar,
üst menu v.s.) veya pencerenin ölçüleri gibi. Fakat Javascript ile
open() metodunu kullanarak bunların hepsini uygulayabilirsiniz.
Aynen şöyle:
window.open("URL","isim","özellikler");
Yukardaki kod ile yeni bir pencere açıp, ilk parametre
olarak yer belirtirsiniz. Bu örnekte "URL", fakat gerçekte
"http://www.testleronline.com" diye bir şey yazmanız lazım.
Metodun ikinci parametresi ise pencerenin adıdır. Bu
sizin aynı pencereye değişik sayfalar yüklemenizi sağlar. Örneğin,
Javascript kullanarak content.htm dosyasını yükleyen "content"
adında yeni bir pencere açalım. Daha sonra ise content2.htm
dosyasını aynı pencereye yüklemeye çalışalım. Böylece aynı ismi
kullanarak yeni bir pencere açmadan, mevcut "content" adındaki
pencerenin içeriğini değiştirmiş olursunuz. Bir örnek verelim:
"javascript" adında bir pencere açalım
"javascript"'in içine giren yeni bir HTML sayfası açalım
Anladınız mı?
Her iki örneğin kodu aşağıdadır:
<a href="#" onClick='window.open("examples/page1.htm","javascript");'>"javascript"
adında bir pencere açalım</a><br>
<a href="#" onClick='window.open("examples/page2.htm","javascript");'>"javascript"'in
içine giren yeni bir HTML sayfası açalım</a>
İlk linki tıklayınca javascript adındaki pencere açılır
examples/page1.htm sayfası içine konulur.
İkinci link ise ilk linkin açtığı pencereye yeni bir HTML
sayfası yerleştirir. Şimdiye kadar iyi gidiyor. Şimdi birazda
features parametresini irdeleyelim!.
Features parametresi açılan pencerenin hangi özellikleri
taşımasını istiyorsanız onları dahil eder. Eğer features
(özellikler) parametresinde herhangi bir özellik dahil ederseniz,
yazılı olmayanları uygulamaz, sadece belirttiğiniz parametreleri
olan bir pencere açar. Örneğin:
window.open("URL","name","status,scrollbars,resizable")
böyle yazarsanız, status bar, scrollbar (kaydırma
çubukları) ve ölçüleri ayarlanabilir bir pencere elde edersiniz.
Dikkat ederseniz, stringde hiç boşluk bırakılmamıştır. Boşluk
bırakırsanız, bir takım browserlarda hata mesajı alırsınız. Şimdi
ise sadece yükseklik ve genişliği belirten tarif eden bir örnek
göreceksiniz:
window.open("URL","name","height=250,width=640")
Unutmayın boşluk bırakmak yok! Ayrıca HTML'den alışkın
olduğunuz " " işaretleri de yok!. Bu biraz karışık olabilir, ama bir
kere anladınız mı tamamdır.
Aşağıda kullanabileceğiniz Feature (Özellik) listesi:
|
height |
Pencerenin
yüksekliği (pixel olarak) |
|
width |
Pencerenin
genişliği (pixel olarak) |
|
status |
Sayfanın
altındaki mesaj çubuğu |
|
menubar |
Sayfanın
üstünde Dosya, Düzen Sık Kullanılanlar gibi şeylerin olduğu
kısım |
|
scrollbars |
Eğer
gerekiyorsa kaydırma çubukları görünsün |
|
toolbar |
Üstünde
Geri, İleri, Anasayfa, gibi buttonların olduğu gezinme çubuğu |
|
location |
Şu anda
bulunduğunuz sayfanın URLsini gösteren kutu |
|
directories |
Bu sadece
Netscape için geçerli. "Yenilikler" butonu gibi butonlar... |
|
resizable |
Ziyaretçilerin pencere ölçülerini değiştirmesine izin
veriyorsanız yazın |
Bunlardan sadece birini yazarsanız, öbürlerini
istemediğiniz anlamına gelir. Eğer hiç bir şey yazmazsanız standart
bir pencere açılır. Hangi özellikleri istiyorsanız onları yazınca
pencere istediğiniz özelliklerde (feature) açılır
 
|