如何选择所有a
和form
代码而无需包含jQuery?
我最终尝试执行以下操作:
$("a").click(function {
window.onbeforeunload = null;
});
$("form").submit(function {
window.onbeforeunload = null;
});
但我真的不想包含jQuery(甚至是Sizzle.js),如果有更紧凑的方法可以做到这一点。
答案 0 :(得分:2)
您可以像这样使用document.querySelectorAll()
:
var els = document.querySelectorAll( 'a' );
for( var i=els.length; i--; ) {
els[i].addEventListener( 'click', function(){ window.onbeforeunload = null; } );
}
类似于<form>
代码。
它适用于大多数现代浏览器(caniuse.com)。
答案 1 :(得分: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="">
编辑: 将两者结合起来:
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; });
}