为什么这个javascript不在IE中运行?

时间:2013-05-24 19:28:49

标签: javascript internet-explorer

关键问题 - 在部署实时网站之前,无法在我的所有浏览器中进行测试......最佳做法 - 破碎。

除此之外,我有相当数量的javascript运行我为我工作的公司管理的网站;我遇到的问题是,除了I.E ..之外,Javascript正在运行。

我已经比较了已经提到的其他一些问题(主要是在这里),我找不到任何相关内容。任何人的帮助都是奇妙的;该网站位于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();
    }
}

2 个答案:

答案 0 :(得分:1)

您的JavaScript代码中有多个console.log语句,除非控制台处于打开状态,否则IE将无法运行。评论或删除它们。

答案 1 :(得分:1)

您必须检查控制台是否存在

if(window.console)
{
}

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

}