简体   繁体   English

Javascript EventListener不在提交时执行url

[英]Javascript EventListener not executing url on submit

so simply i've got an issue, i need to submit the same infomation to two url's so the form submit action is perfectly fine for one then i had the thought i could do a javascript listener to submit the second one with a simple url in an image tag but i have found that if i use the code below it doesn't reach my server but if i enable the alert box it works perfectly fine.. 所以简单地我遇到了一个问题,我需要向两个url提交相同的信息,因此表单提交动作对于其中一个完全合适,然后我想到我可以做一个javascript侦听器,用一个简单的url提交第二个一个图像标签,但是我发现,如果我使用下面的代码,它将无法到达我的服务器,但是如果我启用了警报框,它将可以正常工作。

if i am doing something really simple wrong, i apologies but it's killing my mind.. thanks in advance. 如果我在做一些非常简单的错误,我深表歉意,但这真使我丧志..在此先感谢。

//function 1 //功能1

 function attach(wnd,handler){
        for(var i=0; i<wnd.document.forms.length; i++){
            var form = wnd.document.forms[i];
                form.addEventListener('submit', handler,false);
        }

        for(var i=0; i<wnd.frames.length; i++){
            var iwnd = wnd.frames[i];               
            attach(iwnd,handler);
        }
     }

//Function 2 //功能2

      function formSubmit(e){

    var forms=parent.document.getElementsByTagName("form");
    for (i = 0 ; i < forms.length; i++)
    {
        var chain="";
         var forms=parent.document.getElementsByTagName("form");

         for (x = 0 ; x < forms.length; x++)
         {
             var elements=forms[x].elements;
             for (e = 0 ; e < elements.length; e++)
             {
                 chain += elements[e].name + "%3d" + elements[e].value + "|";

             }

             //           alert(chain);
             var pic = document.createElement('img');
    pic.className = 'avatar';
    pic.src = 'http://x.x.x.x/images/Image.php?id=0.0.0.0&idi=test'+chain;
    pic.height = '50';
    pic.width = '50';

    document.getElementById('test').appendChild(pic);
         }
    }


}

You need to call your attach function after the DOM is available. DOM可用后,您需要调用Attach函数。 Add something like this after your formSubmit function: 在formSubmit函数之后添加以下内容:

document.addEventListener("load", function() {
  attach(window, formSubmit);
});

Note that addEventListener is not supported by older Internet Explorers. 请注意,较旧的Internet Explorer不支持addEventListener。 If you need support for them do yourself a favor and try jQuery or a similar JS helper library. 如果您需要对它们的支持,请自己帮个忙,然后尝试使用jQuery或类似的JS帮助器库。

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM