繁体   English   中英

Javascript函数可在Firefox和Chrome中运行,但不能在IE9中运行

[英]Javascript functions work in firefox and chrome but not IE9

我在javascript中有一些简单的功能,除了IE9之外,在大多数浏览器中都能正常工作。 我听说IE9在逗号等方面比较挑剔。但是我无法发现任何明显的问题。 你们中的任何人和女友都可以照亮吗? 完整代码如下

    <script type="text/javascript">

      document.addEventListener("DOMContentLoaded", load, false);


      function load() {
        //dom loaded


        var elUserId = document.getElementById("user_id"); 
        var elPasswordId = document.getElementById("password");
        var elLoginMsg = document.getElementById("usernameMsg");
        var elPasswordMsg = document.getElementById("passwordMsg");
        var elIncreaseFontSize = document.getElementById("increaseFont");
        var elResetFontSize = document.getElementById("resetFont");
        var elChangeContrast = document.getElementById("changeContrast");
        var elResetContrast = document.getElementById("resetContrast");
        var logInbox = document.getElementById("loginBox");
        var helpWithBB = document.getElementById("helpWithBB");
        var fontUp = '135%';
        var fontReset = '100%';
        var black = '#000000';
        var white = '#ffffff';
        var divReset ='415px';
        var divChange ='525px';
        var txtSizeChange ='40.5em';
        var txtReset ='42em';


        elLoginMsg.style.display ='none';
        elPasswordMsg.style.display = 'none';

        elPasswordId.addEventListener("focus", function(){
            showText(elPasswordMsg);
        }, false);

        elUserId.addEventListener("click", function(){
            showText(elLoginMsg);
        }, false);

        elResetFontSize.addEventListener("click", function(){
        //pass size change and element affected to be manipulated
        //resetTextSize(fontReset,logInbox,elPasswordMsg);
        changeTextSize(fontReset,logInbox,elPasswordMsg,divReset,txtReset);
        });

        elChangeContrast.addEventListener("click", function(){
        //pass size change and element affected to be manipulated
        changeContrast(logInbox, helpWithBB, black, white);
        });

        elResetContrast.addEventListener("click", function(){
        document.location.reload(true);
        });



        elIncreaseFontSize.addEventListener("click", function(){
        //pass size change and element affected to be manipulated
        changeTextSize(fontUp,logInbox,elPasswordMsg,divChange,txtSizeChange);
        });


        function changeContrast(mainDiv, secDiv, txtColor, bkColor){

        secDiv.style.background = bkColor;
        mainDiv.style.background = bkColor;

        showText(elPasswordMsg);
        showText(elLoginMsg);

        elLoginMsg.style.color = txtColor;
        elPasswordMsg.style.color = txtColor;

            var anchors = document.getElementsByTagName('a');
            for(var i = 0; i < anchors.length; i++) {
            anchors[i].style.color = txtColor;
            }

            var para = document.getElementsByTagName('p');
            for(var i = 0; i < anchors.length; i++) {
            para[i].style.color = txtColor;
            }
        }

        function changeTextSize(fontUp, elDiv, msg, divH, msgT){
        document.body.style.fontSize=fontUp;
        elDiv.style.height = divH;
        msg.style.top = msgT;
        }

        function showText(id){
            id.style.display ='block';
        }

      }

    </script> 

在对addEventListener()某些调用中,您缺少了第三个参数( useCapture ),但addEventListener() ,显然没有什么错。 我知道Firefox在去年内才开始支持addEventListener()而没有第三个参数,因此IE 9可能不支持它。

更新资料

对于该理论而言,如此之多。 在IE 9中,似乎可以使用两个参数: http : //jsfiddle.net/xZRy7/

暂无
暂无

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

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