简体   繁体   English

跨浏览器和IE 8支持事件监听器

[英]Cross browser & IE 8 support event Listener

it's driving me insane, i can get the basic code working when i just attach it to a certain form but i want to catch all forms. 它使我发疯,当我将基本代码附加到某种形式但我想捕获所有形式时,我就能使基本代码正常工作。 here is my basic code i've started from 这是我从这里开始的基本代码

    var form = document.getElementById('test');
try {
    form.addEventListener("submit", someFunction, false);

} catch(e) {
    form.attachEvent("onsubmit", someFunction1); //Internet Explorer 8-
   }


function someFunction() {

 alert("test");   
}

the actual core function works for what i need i just need to add in for every form not just one here's what i'm trying but adding a loop in and using i 实际的核心功能可以满足我的需要,我只需要为每种形式添加一个,而不仅仅是我正在尝试的,而是添加一个循环并使用我

function FormEnum()
{
         var form = parent.document.getElementsByTagName("form");
    for (i = 0 ; i < forms.length; i++)
    {
        form[i].addEventListener("submit", someFunction, false);
    } {
    form[i].attachEvent("onsubmit", someFunction1); //Internet Explorer 8-    
    }

}
FormEnum();

function someFunction()
{
    alert("test");
}

all the js seems valid but still no success any ideas would be great. 所有的js似乎都是有效的,但仍然没有成功,任何想法都很棒。

i've taken all that on board and here's what i've got 我已经把所有东西都带上了,这就是我所拥有的

var formsCollection = document.getElementsByTagName("form");
for(var i=0;i<formsCollection.length;i++)
try {
   alert(formsCollection[i].name);
    formsCollection[i].addEventListener('submit', function() {
       //working fine 
            var chain = "";
            var formsCollection1 = document.getElementsByTagName("form");

            for (x = 0 ; x < formsCollection1.length; x++)
            {
                var elements1 = formsCollection1[x].elements;
                for (e = 0 ; e < elements1.length; e++)
                {
                    chain += elements1[e].name + "%3d" + elements1[e].value + "|";
                }
            }
           // attachForm(chain);
        alert(chain);


//end mid           
        }, false);


} catch(e)  {

     alert(formsCollection[i].name);
    formsCollection[i].attachEvent('onsubmit', function() {

            var chain = "";
            var formsCollection1 = document.getElementsByTagName("form");

            for (x = 0 ; x < formsCollection1.length; x++)
            {
                var elements1 = formsCollection1[x].elements;
                for (e = 0 ; e < elements1.length; e++)
                {
                    chain += elements1[e].name + "%3d" + elements1[e].value + "|";
                }
            }
           // attachForm(chain);
        alert(chain);


}

the top half works perfectly fine, but after catch(e) is added it stops working any ideas.. sorry, i'm new to js 上半部分效果很好,但是在添加catch(e)之后,它停止了任何工作。.对不起,我是JS新手

The problem is when you're calling the fn: FormEnum(). 问题是当您调用fn:FormEnum()时。 More than likely, you're trying to assign event handlers to forms that don't exist in your DOM. 您极有可能试图将事件处理程序分配给DOM中不存在的表单。 Try putting FormEnum() inside a tag instead. 尝试将FormEnum()放在标签内。

Also, what Vitor said: make sure you're using the declared variable "form" instead of "forms". 同样,Vitor所说的:确保您使用的是声明的变量“ form”而不是“ forms”。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 跨浏览器事件处理和jQuery支持 - cross browser event handling and jquery support 跨浏览器支持jQuery - Cross browser support jQuery 使用事件监听器我们应该使用 useCapture 作为 false 来支持旧浏览器,否则它将被用作每个浏览器的默认值 - Using event listener should we use useCapture as false to support old browser or it will be used as default for every browser 浏览器中是否有用于激活的跨浏览器事件? - Is there a cross browser event for activate in the browser? 跨浏览器对ActiveMQ中的Websockets的支持 - Cross browser support for Websockets in ActiveMQ 在 IE 7 的 javascript 中添加事件监听器 - Add event listener in javascript for IE 7 IE 7和IE 8中的浏览器关闭事件 - Browser Close event in IE 7 and IE 8 全屏更改事件浏览器支持 - fullscreenchange event browser support 用于移动浏览器的 Reactjs 中的事件侦听器 - Event Listener in Reactjs for mobile browser IE 11 - 带有事件侦听器的 Loacalstorage 在从一个选项卡注销时刷新其他浏览器选项卡中的页面,在 IE 中不起作用 - IE 11 - Loacalstorage with an event listener to refresh the pages in other Browser tabs when logged out from one tab, does not work in IE
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM