当浏览器中的URL被点击或页面被发回时,是否存在全局JavaScript事件,而不是每个URL的点击事件
每当用户单击URL(即获取URL请求)时,以及在ASP.Net页面中发生回发时,我需要捕获一些重要信息 问题:JavaScript中是否有一个全局事件处理程序可用于这种情况 我可以为每个可能的URL单击或页面回发编写一个click/submit事件处理程序,但最好是为所有URL单击和所有表单提交使用一个全局事件处理程序。我将把这个全局处理程序放在ASP.Net应用程序的母版页中 更新1 我试图使用下面的代码来处理ASP.Net页面上的所有帖子提交,但没有触发。在ASP.Net页面中,每页只有一个表单,因此我在下面的代码段中将事件处理程序附加到文档中的第一个表单当浏览器中的URL被点击或页面被发回时,是否存在全局JavaScript事件,而不是每个URL的点击事件,javascript,asp.net,webforms,dom-events,Javascript,Asp.net,Webforms,Dom Events,每当用户单击URL(即获取URL请求)时,以及在ASP.Net页面中发生回发时,我需要捕获一些重要信息 问题:JavaScript中是否有一个全局事件处理程序可用于这种情况 我可以为每个可能的URL单击或页面回发编写一个click/submit事件处理程序,但最好是为所有URL单击和所有表单提交使用一个全局事件处理程序。我将把这个全局处理程序放在ASP.Net应用程序的母版页中 更新1 我试图使用下面的代码来处理ASP.Net页面上的所有帖子提交,但没有触发。在ASP.Net页面中,每页只有一个
document.forms[0].onsubmit = function () { alert('form submitted'); }
更新2
在ASP.NETASPX页面中,如果使用上述代码段,则不会触发表单提交事件。在ASP.Net aspx页面的呈现html中,会发出以下form
标记。可以看到onsubmit绑定了一些ASP.Net特定的逻辑,但不确定是什么阻止了上述事件处理程序的触发
<form method="post" action="./Login.aspx?ReturnUrl=%2fnewcom%2fProducts%2fBrowseProducts.aspx%3fsw%3d1099&sw=1099"
onsubmit="javascript:return WebForm_OnSubmit();"
onkeypress="javascript:return WebForm_FireDefaultButton(event,
'ctl00_ContentPlaceHolder1_Login1_btnVAMLogin')" id="aspnetForm"
onreset="if (window.setTimeout) window.setTimeout('DES_OnReset(false);', 100);">
添加onsubmit属性以在母版页或内容页中形成标记
您可以在标记名上使用事件侦听器
var elements = document.getElementsByTagName('a');
for(var i = 0, len = elements.length; i < len; i++) {
elements[i].onclick = function () {
// stuff
}
}
var elements=document.getElementsByTagName('a');
for(var i=0,len=elements.length;i
回发一页怎么样?我认为表单提交处理程序就足够了。你想做什么?每当用户通过URL单击或ASP.Net页面的回发从ASP.Net页面提交时,我需要在本地存储一些数据。你的答案解决了问题的第一部分。但很多时候,用户以其他方式提交页面,如单击按钮等。我认为,您应该能够在提交处理程序上执行此操作。只需执行您需要的任何操作。并非所有A元素都是链接,区域元素也是链接。有一个集合包含页面中的所有链接,它包含一个和区域元素,但不包含没有href属性(锚)的元素。
<form id="form1" runat="server" style="min-height: 100%; margin: 0" onsubmit="setStartTime();">
var elements = document.getElementsByTagName('a');
for(var i = 0, len = elements.length; i < len; i++) {
elements[i].onclick = function () {
// stuff
}
}