2012-10-05 54 views
0

我有一些简单的JavaScript函数,在IE9以外的大多数浏览器中都能正常工作。我听说I9对逗号等问题很挑剔,但我无法发现任何明显的问题。你们中的任何一个人和加尔斯能否摆脱任何光线?完整的代码如下JavaScript函数在Firefox和Chrome中工作,但不是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> 
+0

它以什么方式不起作用? –

回答

0

你错过了一些您的通话第三个参数(useCapture)到addEventListener(),但比没有什么其他的显然是错误的。我知道Firefox在去年才开始支持addEventListener()而没有第三个参数,所以有可能IE 9不支持它。

更新

这么多的这个理论。 IE 9中两个参数看起来不错:http://jsfiddle.net/xZRy7/

+0

感谢您的意见。无论如何,我把第三个参数。任务继续! – ChrisSherwood

相关问题