Bu web sayfasının basit bir olay dinleyicisi var, sağ tıklattığınızda içerik menüsünü açarak engeller. yeterince basit.Sayfa yüklemesinden sonra ilk tıklama yoksayılıyor
Ancak sayfayı yenilediğimde veya sayfanın ilk yüklemesinde, sayfayı sağ fare ile başlatırsam, bağlam menüsünü gösterir, sonra fare tıklattıktan sonra tıklatır. Chrome, FireFox ve IE'de denedim. Aynı sonuçlar.
Aynı şeyi fare aşağı, tuş veya dokunma olayları vb. Ile deneyimliyorum. İlk tıklama yok sayılıyor. JavaScript çözümü (jquery değil) arıyorum. Neyi kaçırıyorum?
<html>
<head>
<title>test</title>
<script type="text/javascript">
window.onload = function() {
window.addEventListener("contextmenu", mouseright);
}
function mouseright() {
document.oncontextmenu = function(e) {
var e = e || window.event;
alert("right");
e.preventDefault();
}
}
</script>
</head>
<body>
hello world
</body>
</html>
Hatta (bu yazının keydown not detected until window is clicked olduğu gibi) olay dinleyicisi önce bu ekleme çalıştı document.onload
ile hiç şans vardı ve sayfa yükleme ayarında bir olası tarayıcı odağı olabileceğini gördün. JavaScript'te denemediğim herhangi bir fikir veya başka fikir var mı?
if (document.hasFocus() == true) {
} else {
window.focus();
}
kaldır window.onload: İlave sarıcı Çıkarma çalışıyor gibi görünüyor. mouseright eventListener'dan daha büyük olarak ayarlandı. – KoIIIeY
sayfa yüklenmeden önce ilk tıklama yangınları, bence, yani sayfa yüklenirken beklememeniz için – KoIIIeY
'mouseright()' ilk tıklamaya çağrılır, ancak 'contextmenu' olayı zaten tetiklenir (işte nasıldır? Mouseright() 'denirdi. 'Oncontextmenu' seçeneğinin üzerine yazmak * geçerli * yürütmeyi değiştirmez, ancak * sonraki * yürütmeyi değiştirir. –