sonra, pop up engelleyicisi tarafından engellendi. Tarayıcı ikisi arasında nasıl değişiyor?Tarayıcı, kullanıcı tıklaması ile programatik tıklama arasındaki farkı nasıl bildiriyor? Ben <code>window.open()</code> yapar Jquery ile bir tıklama başlatırsanız el pencere engellenmez tıklama yaparsanız
cevap
Bunun Firefox uygulaması this bug üzerinde uzun uzadıya tartışıldı ve this other bug bu durumda (şüphelenmeyen kullanıcıların istenmeyen bir pop-up pencere yutturmak için geçmesi ne uzunlukları siteleri de dahil olmak üzere, bazı başka ilginç geçmişe sahip olan: den window.open()
arayarak bir görüntü içinde load
olay). Bugzilla'yı araştırırsanız, Mozilla halkının tüm bunları doğru bir şekilde alması birkaç yıl sürecektir. Örneğin, here's a bug from 2001.
şu anda çalışır yolu şudur: Firefox JavaScript (about:config
yılında dom.disable_open_click_delay
arayın) etkindir zaman window.open()
belirli bir miktar için, işletim sisteminden bir tıklama etkinliğini aldığında. Eğer bir kullanıcı tıklaması window.open()
etkinleştirme, daha sonra ilk adımı meydana gelmeden kodundan click()
olay ararsanız window.open()
çağrısı kendisi to stop sites detecting that you have popup blocking enabled başarılı olur gerçi hiç oluşur.
Ben diğer tarayıcılar bu şeyleri uygulamak ama çok farklı olsaydı benim için şaşırtıcı olurdu emin değilim.
ben jQuery ile click
arayarak aslında gerçekten elemana bir tıklama tetiklemez inanıyoruz, ancak bunun yerine tıklama dinleme işlevini çağırır. Yani, click()
numaralı telefonu aramanıza rağmen, sadece bir işlevi çağırıyorsunuz.
kullanıcı tıkladığında
, gerçek bir tık.Örnek:
var handler = function() {
alert('hi');
};
$('#example').on('click', handler);
$('#example').click(); // really just calls handler();
Yerel javascript .click() için de geçerli mi? – nbrooks
Dikkat edilmesi gereken önemli bir şey: Eğer kullanıcı olarak, tıklatılan kodla sonuçlanan bir şey yaparsanız, yine de yapar. Bu, "click" etkinliğini çağıran bir şeyin tıklanmasını içerir. Veya bir anahtar basın olayı bile bunu çağırabilir ve işe yarayacaktır. – sachleen
Kullanıcının istendiğinde dikte edecek belirtimde hiçbir şey olmadığı için tarayıcının bu denetimi nasıl uygulayacağını tahmin etmek zordur. http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-2651361 – Fenton
tarayıcının yerel kod (işletim sisteminden) fiili fare tıklaması olay işleme ve tarayıcı olay nesnesi oluşturur. Tarayıcının yerel kodunda bu noktada, tarayıcı bu olayın gerçek bir fare tıklamasıyla oluşturulduğunu bilir.
Tahminimce, etkinliğe eklenmiş bazı gizli veriler (javascript'ten erişilemez) var; bu, tarayıcının etkinliğin gerçek bir fare tıklamasıyla başlatılıp başlatılmadığını veya başka uygulama mekanizmaları olabileceğini izlemesine izin verir. çok.
Burada [jsfiddle] (http://jsfiddle.net/twMSG/1/) göstermek için var. Sayfa yüklemesi açılırken açılır, ancak engellenir. 'Click' olayının çağrılması programlı olarak engellenmesine neden olur, ancak başka bir tıklama olayı içinde ararsanız, bu durum geçer. – sachleen