代码之家  ›  专栏  ›  技术社区  ›  DEVMBM

如何解决javascript错误:方法xx未定义?

  •  1
  • DEVMBM  · 技术社区  · 15 年前

    我在ASP.NET和jQuery网站上工作,当运行浏览站点时,Java脚本错误已经发生。 Visual Studio调试程序引用了未定义的GetMainFrameURL:

    function EBNavigateComplete() 
    {
        if (!GetMainFrameUrl())
        {
            navCounter++;
            if (navCounter%100==0)
            {
                o.loadEmptyTerm();
                counter = 0;
            }
        }
        else
        {
            if (o.pbNavigateComplete(GetMainFrameUrl()))
            {
                counter = 0;
            }
        }
    }
    

    有什么帮助吗????

    3 回复  |  直到 15 年前
        2
  •  0
  •   Abel    15 年前

    Visual Studio调试器并不总是能够加载所有动态加载的脚本(但通常是这样)。如果在firefox或opera中运行,会发生同样的错误吗?

    错误意味着函数 GetMainFrameUrl 未定义。如果您拼错了现有函数的名称,或者只在稍后的链中加载了该函数,就会发生这种情况。在后一种情况下,更改 <script> 获取主框架URL 先加载。

    找到这个函数是否在某个地方可用的一个简单方法是点击 Ctrl-Shift-F 在Visual Studio中,选择“整个解决方案”而不选择文件筛选器,然后搜索缺少的函数的名称。

        3
  •  0
  •   Floyd user1988754    15 年前

    如果您不想检查GetMainFrameURL函数是否存在,则不能使用“if(!getMainframeURL())”。在这种情况下,javascript执行函数并编译返回值。 你可以用“如果”!getmainframeurl)”,但这只检查是否存在具有此名称的任何函数、对象或变量。 你应该使用“typeof”。见附表:

    function EBNavigateComplete() 
    {
        if ( typeof GetMainFrameUrl !== 'function' )
        {
            navCounter++;
            if (navCounter%100==0)
            {
                o.loadEmptyTerm();
                counter = 0;
            }
        }
        else
        {
            if (o.pbNavigateComplete(GetMainFrameUrl()))
            {
                counter = 0;
            }
        }
    }
    
    推荐文章