1

jQueryを含める必要なく、すべてaのタグを選択するにはどうすればよいですか?form

私は最終的に次のことをしようとしています:

$("a").click(function {
    window.onbeforeunload = null;
});

$("form").submit(function {
    window.onbeforeunload = null;
});

しかし、よりコンパクトな方法があれば、jQuery (または Sizzle.js でさえも) を含めたくありません。

4

2 に答える 2

3

document.querySelectorAll()次のように使用できます。

var els = document.querySelectorAll( 'a' );
for( var i=els.length; i--; ) {
  els[i].addEventListener( 'click', function(){ window.onbeforeunload = null; } );
}

<form>タグについても同様です。

最新のほとんどのブラウザー ( caniuse.com ) で利用できます。

于 2013-02-12T17:56:45.120 に答える
1

これはそれを行う必要があります:

var links = document.getElementsByTagName("a"); 
for (var i = 0; i < links.length; i++) { 
    links[i].addEventListener("click", function() { console.log("Clicked"); window.onbeforeunload = null; });
}

フォームを送信するには、次のようにします。

<script>
    do_function() { window.onbeforeunload = null; }
</script>
<form action="" onsubmit="do_function()" method="">

編集:2つを組み合わせるには:

var links = document.getElementsByTagName("a"); 
for (var i = 0; i < links.length; i++) { 
    links[i].addEventListener("click", function() { console.log("Clicked"); window.onbeforeunload = null; });
}
var forms = document.getElementsByTagName("form");
for (var i = 0; i < forms.length; i++) { 
    forms[i].addEventListener("submit", function() { console.log("Submitted"); window.onbeforeunload = null; });
}

フィドル

于 2013-02-12T17:57:10.830 に答える