onClick- bu, kullanıcının ekranındaki 1 numaralı olaydır.
onClick kullanıcının bir nesneye tıklamasıdır (veya tıklamasıdır).
Kullanıcının bu tür her tıklamasından sonra, ekranda bir yanıt eylemi olmalıdır. Arayüzün etkileşimi bu şekilde sağlanır ve bir bilgisayar ile bir kişi arasındaki iletişimin ana ilkesi onaylanır - tıkla, cevapla, tıkla, cevapla.
Özel jargonda, bir olay onClick ne istersen denilebilir. Sıradan kullanıcılar buna fakir demeyince onClick- tıkla, çek, tıkla, tıkla, vur, vb. ... Ancak, bunun özü yıllar içinde değişmez - kullanıcı ekranda aktifse ve nesneye tıklarsa, bilgisayar ona (kullanıcıya) yeterince yanıt vermelidir. işte bu onClick.
HTML'de onclick
Etkinlik onClick herhangi bir dilde çok önemlidir. Ve HTML bir istisna değildir. İyi bilinir. Gerçekten de, tıkladıktan sonra ( onClick) tarayıcıdaki öğede hiçbir şey olmuyor - neden o zaman sitede herhangi bir şey programlıyorsunuz? Yani, onClick- herhangi bir internet ekranında (veya ekranda) hoş geldin konuğu.
Şimdi konuya daha yakın. Daha spesifik olarak, bizim onClick bir site sayfasında, bir tarayıcıda - bu, HTML'nin yalnızca yapılarının kodunu yerleştirmek için bir iskelet görevi gördüğü bir Java betiğinden bir olaydır. Ve bu HTML kodunun geçerliliği açısından, yazmak doğru olacaktır. tıklamada, Ama değil onClick(birçok uygulama programcısının alıştığı gibi). Çünkü HTML'de tüm etiketler ve yapılar sadece küçük harfle yazılır.
HTML'de büyük harf yok. Hayır işte bu !!! Ve HTML'de büyük harflerle yazan "günahkarlar", eski güzel günlerde ellerini dizlerine kadar kesmek gelenekseldi. Dahası. Korkunç Çar Çar Ivan'ın altında, HTML'de yazmak için formun olduğunu söylüyorlar.
ya da kazığa olmasa da darağacına memnun etmek kolaydı. Bu kesinlikle kesindir. Şu anda, elbette - saraylılar ve yöneticiler daha sakinleşti. Yine de, herhangi bir kod yazarken, en azından nezaket görünümünü gözlemlemelisiniz. Bu yerden başlar doğru hikaye tıklamada.Böylece çözüldü ve kanıtlandı (HTML için).
Öncelikle yazıyoruz tıklamada, Ama değil onClick !!!
MENÜ # 1
veya
Bu çılgın satırların ne anlama geldiğini biraz sonra anlayacağız ama şimdilik...
- Temel olarak, Java betiğinden HTML'ye onclick olayı, HTML sayfa kodunun herhangi bir öğesine asılabilir,
Veya
- ... Tarayıcı her şeyi silip süpürecek ve her şey işe yarayacak. Bu sadece, klavyeden bir öğeye erişim yalnızca bir bağlantı veya düğme nesnesi için mümkündür. Ve bir an için kullanıcının faresi olmadığını ve yalnızca klavyeden çalıştığını varsayarsak, sitede dokunabileceği tek şey sadece düğmeler veya bağlantılar olacaktır. Üçüncüsü yok! Bu nedenle, onclick olayını klavyeden erişilemeyen nesnelere "asmak" çok çirkindir. İnsanca değil, bir şekilde öyle. Bundan ikinci kural geliyor HTML'de onclick- bu olay yalnızca bir bağlantıya ("a" etiketi) veya bir düğmeye ("düğme etiketi") bağlanmalıdır. Aksi takdirde, kod çalışmaya devam eder, ancak cehennemde, bu tür programcılar için - ayrı bir büyük kızartma tavası hazırlanmıştır.
(HTML'de) biçimlendirme ve düğmelerle ("batonlar") çalışmak belirli zorluklara neden olduğundan, tek, evrensel ve en uygun seçenek yalnızca bir bağlantıdır ("a" etiketi). Ancak, bu etiketle bile - her şey o kadar düzgün değil. Şimdi kod satırımızla ayrıştırmaya geri dönelim:
MENÜ # 1
Tartışmadan başlık bağlantılarını tamamen açık bir şey olarak atıyoruz. Kalıntılar
MENÜ # 1
Diğer tüm yazma saçmalıkları, niteliği engelleme konusuyla ilgili olacaktır. href bağlantının çalışan bir bağlantı olmaktan çıkması, ancak yine de işlevleri yerine getirmesi için uygun şekilde "felce uğratılması" gereken . tıklamada.
yanlış döndür;
yanlış döndür; href niteliğinin doğrudan engellenmesidir. Kullanıcının tarayıcısında Java komut dosyası etkinse, onclick olayı ilgili komut dosyasından çağrılır ve bağlantıya tıklanmaz. Yani, "arama bağlantısına" tıkladığınızda href'den adrese anında geçiş olmaz, tıklamada bir etkinlik eklendi yanlış döndür; ve javascript etkinleştirilirse aşağıdaki bağlantıyı iptal edecek olan önce işlevin yürütüleceği varsayılır. Bu nedenle, java betiği yürütülürken yok sayıldığı için href özniteliğinin içeriği önemsizdir.
Ama soru şu. Ve bir kullanıcının tarayıcısında bir Java komut dosyası devre dışı (devre dışı) varsa ne olur? O zaman bağlantımız nasıl davranacak? Entrika olmayacağım, ancak olası senaryoları hemen ortaya koyacağım - Java betiği kapalıyken böyle bir bağlantıya tıkladıktan sonra href niteliğinin olası değerleri ve ilgili tarayıcı davranışı.
Tabii ki, kullanıcının tarayıcısında javascript devre dışı bırakılmışsa, bu bir sorun ve bir karmaşadır. Kullanıcının tarayıcısında Java komut dosyalarının yürütülmesi devre dışı bırakılırsa (yasaklanırsa), öznitelikle sürekli sorunlar başlar. href etiket "a" olduğundan, hala bir bağlantıdır ve tarayıcı onu takip etmeye çalışacaktır.
Özelliği tamamen atın href bağlantıdan izin verilmez. Özellik yok href Bağlantı metninde, hiçbir şekilde vazgeçmek mümkün değildir ve herhangi bir onaylayıcı, baharatlı ve narin vücudunun böyle bir kötüye kullanılması nedeniyle derhal rahatsız edilecektir. Öyleyse, geriye tek bir seçenek kalıyor - niteliği doldurmak href sindirilebilir içerik Burada şunlar mümkündür: ayrılmak href tamamen boş, bir kare "#" veya ifade ile doldurun javascript: //... Java komut dosyası devre dışı bırakıldığında (veya yapıştırıldığında), bu tür bağlantılara tıkladıktan sonra aşağıdakiler gerçekleşir:
Araştırma href niteliği boş. Böyle bir bağlantıya tıkladıktan sonra, tarayıcıdaki sayfa yeniden yüklenecektir. Araştırma href niteliği "#" dir. Böyle bir bağlantıya tıkladıktan sonra, kullanıcı yeniden yüklemeden sayfanın en üstüne atılacaktır. Araştırma href niteliği "javascript: //" olarak ayarlanmıştır. Böyle bir bağlantıya tıkladıktan sonra hiçbir şey olmuyor. href = "javascript: //"- bağlantıya tıklamak tarayıcı tarafından görmezden gelinecektir. Anlam "javascript: //" href özelliği için bu, Java komut dosyası kapatıldığında bir bağlantıyı engellemeye yönelik standart "saplama"dır.
href = "javascript: //" - saçmalık!
Neden saçmalık? Çünkü arama motorları dünyasında internet hayatı kendine göre ayarlamalar yapmaktadır. Doğru ve anlamsal bir bakış açısıyla! düzen, href özniteliğine gerçek bir bağlantı yazıp bu bağlantı için gerçek bir başlık eklemek kesinlikle mantıklı olacaktır. Daha sonra, böyle bir bağlantıya tıkladıktan sonra, iki şeyden biri gerçekleşecektir: ya ilgili Java betiğinden onclick olayı yürütülecek ya da gerçek bağlantı gerçek sayfaya yönlendirilecek (Java betiği devre dışıysa veya takılı kalmışsa) / az yüklenmiş).
Böylece özetleyelim. Java komut dosyası olayını çağırmak için bağlantıda, href'de javascript kapalıyken geçiş için gerçek sayfaya gerçek bağlantıyı koyduk ve onclick'te - Java komut dosyası açıldığında komut dosyasını yürütme isteğini çağıran işlev üzerinde.
Başka bir deyişle, içinde "Href" kullanıcının "call event bağlantısını" tıkladığında yeniden yönlendirileceği herhangi bir web sayfasına tamamen normal ve çalışan bir bağlantı olmalıdır. kapalı Java komut dosyası ve ne zaman komut dosyası tarafından yoksayılacak dahil Java komut dosyası. Bu kadar …
Eh, sonunda -
Java komut dosyasını etkinleştirmek/devre dışı bırakmak için tarayıcıyı kontrol etme
Böyle bir kontrol için standart kod şöyle görünür:
nerede, için dışında herhangi bir stili CSS'de yazabilirsiniz. görüntü yok; ve benzer stiller ... Tarayıcı ZORUNLU !!! kullanıcı tarayıcısında Java komut dosyasını devre dışı bırakırsa bu mesajı ekranda görüntüler. Bu kadar basit bir şekilde, Web Yöneticileri genellikle şöyle yazar: "Lütfen javascript'i açın" veya benzer bir istekle veya başka bir şeyle bazı güzel resimler görüntüleyin ... Etiketin içinde not yazısı herhangi bir HTML etiketi koyabilirsiniz. Ve bu hiç de ekstra bir önlem değil. Gerçi artık javascript kullanmayan bir site bulmak o kadar kolay değil.
Yanımızda olmayan bize karşıdır.
Tarayıcıda kapatılan Java komut dosyasıyla ilgili sorun, genel olarak kökten ve kökten çözülebilir. Örneğin, bölümün içine ekleyin
burada, http://mysite.ru/ hemen yönlendirildiği web sayfasıdır
kullanıcı tarayıcıda devre dışı
Java komut dosyası.
JavaScript dilinin belki de bu dildeki en önemli özelliklerinden biri, yetenektir. bazı olayları ele almak... Bu yetenek, web programlamadaki diğer dillere kıyasla JavaScript'e özgüdür, çünkü bunu yalnızca bu dil yapabilir.
Olay ve olay işleyicileri nedir
Olay, kullanıcı veya sayfadaki diğer nesneler tarafından gerçekleştirilebilen bir eylemdir.
Bir olayın en çarpıcı örneği, kullanıcının bir nesneye tıklamasıdır ( Tıklayın), bir düğme, bağlantı veya başka bir öğe olsun. Bir olayın başka bir örneği, fareyi bir nesnenin üzerine getirmektir ( fareyle üzerine gelmek), resmin üstünde söyleyin. Ayrıca, olay tam sayfa yüklenir ( yük). Genel olarak, sitede gerçekleşen tüm eylemler olaydır.
Böylece sayfada üretilen herhangi bir olayı yakalayabilir ve uygun işleyiciyi kullanarak işleyebiliriz. Örneğin, fareyi bir div bloğunun üzerine getirdiğimizde, "Metin alanındasınız" diyelim, bir mesaj görüntüleyebiliriz. Veya düğmeye tıkladığınızda, sayfadan bazı blokları gizleyin. Genel olarak, bir olayı işlemeden önce birçok şey yapılabilir.
Ve bir olayı işlemek için bu olay için özel bir işleyici kullanmanız gerekir. Her olayın kendi işleyicisi vardır, örneğin, tıklama olayı ( Tıklayın) bir işleyici var tıklamada... Fareyi nesnenin üzerine getirme olayı ( fareyle üzerine gelmek) bir işleyici var fare üzerinde... Ve tam sayfa yükleme olayı ( yük) bir işleyici var aşırı yük.
Yani anladığın gibi işleyici adı, "on" öneki + olayın adından oluşur.
Olayların ve işleyicilerin tam listesi referansta bulunabilir, bu makalede yalnızca en sık kullanılanları ele alacağız.
Olay işleyicisi HTML öğesinin kendisinde bir nitelik olarak adlandırılır. JavaScript kodunu doğrudan işleyicinin değerine yazabilirsiniz, ancak gerekli işlemleri yapacak bazı işlevleri çağırmak daha iyidir. İşlev, head bloğunun içinde veya body etiketinin sonunda bulunabilen komut dosyası etiketinin içinde açıklanmalıdır. Bu işlevin parametresi iletildi kelime bu, yani geçerli nesne.
Şimdi basit bir örnek yazalım. Fareyi metnin bulunduğu bloğun üzerine getirdiğinizde, uyarı yöntemini kullanarak, kullanıcının metin alanının içinde olduğuna dair bir mesaj görüntüleyeceğiz.
Div (sol dolgu: 50 piksel; genişlik: 200 piksel; kenarlık: 1 piksel düz # 000;)
JavaScript kodu:
blokOver (blok) işlevi (uyarı ("Metin alanındasınız");)
Belgeyi kaydediyoruz, bir tarayıcıda açıyoruz, fare imlecini metnin üzerine getiriyoruz ve bu olayın işlenmesinin sonucunu görüyoruz:
Javascript'te bir özelliğin değerini nasıl alabilirim?
(bu) fonksiyon parametresi ile şunları yapabilirsiniz: geçerli nesnenin bazı özniteliklerinin değerini al, örneğin, kimliğini öğrenin.
Örneğin bir buton oluşturalım ve ona "justButton" değeri ile bir id verelim. Bu butona tıkladığımızda şu mesajı görüntüleyeceğiz: "id_value tanımlayıcısına sahip butona tıkladınız". Burada zaten kullanmalısınız onclick işleyicisi.
JavaScript kodu:
işlev clickOnButton (düğme) (uyarı ("Tanımlayıcıyla düğmeyi tıkladınız:" + button.id);)
Belgeyi kaydediyoruz, bir tarayıcıda açıyoruz ve butona tıklıyoruz.
Aynı şekilde, düğmenin adını da görüntüleyebilirsiniz ( düğme.adı) veya değeri ( düğme.değer)
Elemanın genişlik ve yükseklik değerini alın
Henüz elemanın CSS özelliğinin değerlerini öğrenebilirsiniz genişlik ve yükseklik gibi. Genişliği elde etmek için özellikleri kullanın clientWidth ve offsetWidth ve yükseklik için clientHeight ve offsetHeight... Örneğin tıklanan butonun genişliğini ve yüksekliğini gösterelim.
Şimdi clickOnButton işlevinin içeriği şu şekilde olacaktır:
işlev clickOnButton (button) (// alert ("Kimliği olan bir düğmeyi tıkladınız:" + button.id); var genişlik = button.clientWidth || button.offsetWidth; var height = button.clientHeight || button.offsetHeight; alert ("Düğme genişliği:" + genişlik + "\ nDüğme yüksekliği:" + yükseklik);)
Bu örneğin sonucu:
Hatırlatma olarak, öğenin genişliği dolgu değeriyle birlikte sayılır, bu nedenle 111 piksele eşittir [99 piksel (genişlik) + 6 piksel (sol dolgu) + 6 piksel (sağ dolgu)].
Bir olayı işlemek için çok fazla kod yazmanız gerekmiyorsa, bunu yazabilirsiniz. doğrudan işleyici değerine kodlayın... Yani fonksiyonu çağırmak yerine gerekli kodu hemen yazıyoruz.
Örneğin, bir sayfa yüklerken "sayfa yükleniyor" mesajını görüntüleyebilirsiniz. Bunu yapmak için kullanmanız gerekir load olayı ve onload işleyicisi... Bu işleyiciyi açılış gövde etiketine yazacağız.
Bu yöntem yalnızca olayı işlemek için yalnızca bir kısa kod satırı gerekiyorsa kullanılabilir. Aksi takdirde, işleme kodu bir uzun satırdan veya birçok satırdan oluşuyorsa, bir işlev kullanmanız gerekir.
Ve bu makalenin sonunda, bir formu işlemenin basit bir örneğine bakalım. JavaScript'te form işleme, ilk olarak sunucudaki yükü azaltır ve ikinci olarak sitenin kullanılabilirliğine ek bir artı verir.
Form, bir oturum açma alanı ve bir gönder düğmesinden oluşur. Formu gönderirken, girişin uzunluğunu kontrol edeceğiz. Uzunluğu üç karakterden fazla olmalıdır.
Bu formun HTML yapısıyla başlayalım.
Şimdi form etiketini bir nitelik olarak ekleyin onsubmit işleyicisi, gelişmeler Sunmak... Aşağıdaki şekilde:
Taramalı Atomik Kuvvet Mikroskobu Laboratuvar raporu şunları içermelidir:
Havai iletişim ağı için destek seçimi
AC katener tasarımı ve hesaplanması
Mikroişlemci sistemlerinin geliştirilmesi Mikroişlemci sistemlerinin tasarım aşamaları
mcs51 ailesinin mikrodenetleyicileri