2013-05-24 4 views
-3

중요한 문제 - 라이브 사이트를 배포하기 전에 모든 브라우저에서 비참하게 테스트하지 못했습니다. 모범 사례 - 산산조각이났습니다.IE에서이 자바 스크립트가 실행되지 않는 이유는 무엇입니까?

그 점을 제외하고 나는 내가 일하는 회사에서 관리하는 사이트를 운영하는 상당한 양의 자바 스크립트를 가지고있다. 내가 가지고있는 문제는 자바가 모든 것에서 실행되고 있다는 것입니다 ..

이미 다른 문제 (이미 여기에 설명되어 있음)와 비교해 본 결과 관련 항목을 찾을 수 없습니다. 누구든지 도움을 줄 수 있습니다. ... 사이트는

덕분에 미리 ... 나는이 문제는 다음과 같은 코드의 어딘가에 존재하는 것을 상당히 확신 http://www.agpvideo.com

에 있고, 나는이 곳 저를 얻을 수 있기를 바랍니다

function ParseAjax(RootNode) 
{ 
    for(var i = 0; i < RootNode.childNodes.length; i++) 
    { 
     var Node = RootNode.childNodes[i]; 

     if(Node.nodeType == 3 || Node.nodeType == 8) 
     { 
      continue; 
     } 
     else 
     { 
      if(console && console.log) 
       console.log("Parsing node: " + Node.nodeType + " :: " + Node.nodeName + " :: " + Node.className + " :: " + Node.id); 

      var Ajax = null;   

      if((Ajax = Node.getAttribute("ajax")) == null) 
      { 
       if(RootNode.childNodes[i].childNodes != null && RootNode.childNodes[i].childNodes.length > 0) 
       { 
        ParseAjax(RootNode.childNodes[i]); 
        continue; 
       } 
       else 
       { 
        continue; 
       } 
      } 
      else 
      { 
       if(Node.getAttribute("id") == null) 
       { 
        document.writeln("Invalid AJAX callback. Please consult an administrator."); 
        continue; 
       } 
       else 
       { 
        var Img = document.createElement("img"); 
        var Src = document.createAttribute("src"); 
        Src.value = "resource/img/std/ajax-loader-0.gif"; 
        Img.setAttribute("src", Src.value); 
        Node.appendChild(Img); 

        RequestAjax(Node.getAttribute("id"), Ajax); 
        continue; 
       } 
      } 
     } 
    } 
} 


// JavaScript Document 
function RequestAjax(ElementId,AjaxRequest) 
{ 
    if(ElementId.length <= 0) 
    { 
     return; 
    } 
    else if(AjaxRequest.length <= 0) 
    { 
     return; 
    } 
    else 
    { 
     if(console && console.log) 
      console.log("Preparing AJAX request..."); 

     var Request = null; 

     if(window.XMLHttpRequest) 
     { 
      Request = new XMLHttpRequest(); 
     } 
     else 
     { 
      Request = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 

     Request.ElementId = ElementId; 
     Request.onreadystatechange=function() 
     { 
      if(console && console.log) 
      { 
       if(Request.readyState <= 1) 
        console.log("AJAX state change: " + Request.readyState); 
       else 
        console.log("AJAX state change: " + Request.readyState + "/" + Request.status); 
      } 

      if(Request.readyState == 4 && Request.status == 200) 
      { 
       var TargetElement = null; 
       if((TargetElement = document.getElementById(Request.ElementId)) == null) 
       { 
        if(console && console.log) 
         console.log("AJAX TargetElement is null. Cannot set content for " + Request.ElementId); 
       } 
       else 
       { 
        TargetElement.innerHTML = Request.responseText; 

        ParseAjax(TargetElement); 
       } 
      } 
     } 

     Request.open("GET",AjaxRequest,true); 
     Request.send(); 
    } 
} 
+6

로 콘솔의 존재를 확인해야합니다. –

+0

그리고 너 무례하니? 편집이 시작됩니다. – DigitalJedi805

+2

그것은 무례한 것이 아니라 진리입니다. – George

답변

1

당신은, 우리가 원격 디버깅 서비스 문제와 여기에 관련 코드를 넣어하지 않은 위치를 찾기

if(window.console) 
{ 
} 

또는

if(typeof console !== "undefined") 
{ 

} 
+0

감사합니다. 이 인스턴스에서는 매우 유효한 정보입니다. – DigitalJedi805

1

콘솔이 열려 있지 않으면 IE가 실행되지 않는 JavaScript 코드에 여러 개의 console.log 문이 있습니다. 댓글을 달거나 제거하십시오.

+0

콘솔의 존재 여부를 먼저 확인합니까? – DigitalJedi805

+1

콘솔의 존재 여부를 확인하는 중이라면 잘못했거나 IE에서 페이지를 죽이는 console.log 행이기 때문에 고장났습니다. – j08691

+0

콘솔 자체의 존재를 확인하는 것 같아서 나를 막고있었습니다. 고맙습니다. – DigitalJedi805

관련 문제