2010-12-27 4 views
2

私はInternet Explorerでうまく動作するソースコードを持っていますが、ChromeやFirefoxでは動作しません。私はそれをポータブルにしたい。助けてください。Internet Explorer以外のブラウザで次のコードを移植可能にするにはどうすればよいですか?

<html> 
    <head> 
    <title>Login</title> 

    <script language="javascript"> 

    function valUser(){ 

    xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
     xmlDoc.async = "false"; 
     xmlDoc.onreadystatechange = functory; 
     xmlDoc.load("normal.xml"); 

    } 

    function functory(){ 
     var u = document.forms[0].user.value; 
     var p = document.forms[0].pwd.value;   

     if(xmlDoc.readyState == 4){ 

      xmlObj = xmlDoc.documentElement; 
      var len = xmlObj.childNodes.length; 

      for(i = 0; i < len; i++) 
      {  
       var nodeElement = xmlObj.childNodes[i]; 
       var ux = nodeElement.childNodes[0].firstChild.nodeValue; 
       var mx = nodeElement.childNodes[1].firstChild.nodeValue; 
       var ex = nodeElement.childNodes[2].firstChild.nodeValue; 
       var px = nodeElement.childNodes[3].firstChild.nodeValue; 

       if((ux == u)&&(px == p)){ 
       userDetails(ux,mx,ex) 
       } 
       else { 
       var divInvalid = document.getElementById('invalid'); 
       divInvalid.innerHTML = "<b>Invalid Username or password</b>"; 
       } 
      } 
     } 

    } 

function userDetails(u,m,e){ 
var newWindow = window.open("", "_self", "height=250,width=250,toolbar=yes,scrollbar=yes,status=yes"); 
var content = "<html><head><title>Intro</title></head><h1 align='center'><font face='Lucida Handwriting' color='red'>Welcome To GlenMark Pharma</h1></font>"; 
content += "<body>"; 
content += "<table align='center'border='1'><tr><th>ENAME</th><th>Mobile</th><th>Email</th></tr>"; 
content += "<tr><td>"+u+"</td><td>"+m+"</td><td>"+e+"</td></tr></table>"; 
content += "<div style='postion:absolute;top:10px;right:5px'><a href='logout.html'>LOgout</a></div>"; 
content += "</body></html>"; 

newWindow.document.write(content); 
newWindow.blur(); 
} 


    </script> 
    </head> 

    <body > 
    <div style="position:absolute;left:0px;top:0px;"> 
    <img src="login.jpg" height="650"></img>  

    <div style="font-family:Monotype Corsiva;position:absolute;left:640px;top:250px;"><h1><font color="0066FF">Employee Login</font></h1></div> 
    </div> 


    <form method="post" action="ret.html" name="frmGlenMark"> 

    <div style="position:absolute;left:640px;top:325px"> 
    <input type="text" name="user" size="25"> 
    </div> 

    <div style="position:absolute;left:640px;top:355px"> 
    <input type="password" name="pwd" size="25"> 
    </div> 

    <div style="position:absolute;left:640px;top:385px"> 
    <input type="Button" value="Login" onClick="valUser()"> 
    </div> 


    <div id="invalid" style="position:absolute;left:640px;top:410px"></div> 

<!-- 
    <div style="position:absolute;left:705px;top:385px"> 
    <input type="reset" name="Reset"> 
    </div> 
--> 


    </form> 
    </body> 

</html> 

キャッチされないにReferenceError:ActiveXObjectのは に定義されていません - >これは私が取得エラーです。

私はそれをポータブルにしようとしましたが、まだエラーが発生します。 のような:

function valUser(){ 

    if(window.XMLHttpRequest) 
    { 
     xhttp = new XMLHttpRequest(); 

    } 
    else 
    { 
      xhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

     xhttp.open("GET","normal.xml",false); 
     xhttp.send(); 
     xmlDoc=xhttp.responseXML; 
     onreadystatechange = functory; 

    } 

キャッチされない例外TypeError:DOMオブジェクトのコンストラクタは関数として呼び出すことはできません。

+0

あなたはまだ同じ問題に直面していますか? – Searock

+0

@Searock - はい – Pavitar

答えて

0
function loadXMLDocErr(dname) 
{ 
try //Internet Explorer 
    { 
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
    xmlDoc.async=false; 
    xmlDoc.load(dname); 

    if (xmlDoc.parseError.errorCode != 0) 
    { 
    alert("Error in line " + xmlDoc.parseError.line + 
    " position " + xmlDoc.parseError.linePos + 
    "\nError Code: " + xmlDoc.parseError.errorCode + 
    "\nError Reason: " + xmlDoc.parseError.reason + 
    "Error Line: " + xmlDoc.parseError.srcText); 
    return(null); 
    } 
    } 
catch(e) 
    { 
    try //Firefox 
    { 
    xmlDoc=document.implementation.createDocument("","",null); 
    xmlDoc.async=false; 
    xmlDoc.load(dname); 
    if (xmlDoc.documentElement.nodeName=="parsererror") 
     { 
     alert(xmlDoc.documentElement.childNodes[0].nodeValue); 
     return(null); 
     } 
    } 
    catch(e) {alert(e.message)} 
    } 
try 
    { 
    return(xmlDoc); 
    } 
catch(e) {alert(e.message)} 
return(null); 
} 
関連する問題