2

我通过创建脚本标记并将 javascript 写入它的 .innerHTML 来动态加载一些 .js。

我收到此错误:

SCRIPT1004: Expected ';' 
develop, line 1487 character 24

这没有任何意义......所以我猜它是正确或错误地一起报告行号(我至少很高兴它做到了这一点而没有失败......1487接近我的结尾代码 )。

Firefox 通常会报告正确的行,但总是偏离 1 行。我以为IE9也会...

我该如何排除故障。我已经验证了代码通过了 jshint.com,这使得它期待一个;. 如果它是真的,Jshint 会抓住它。

几乎在 IE9 上盲目飞行。

这是代码:上面有 10 行,下面有 10 行。第 1487 行是这样注释的。

    /**
     *Publik
     */

    var publik = {};
    publik.initMenu = function( )
    {
        top_element = document.getElementById( 'top_new' ); 
        bottom_element = document.getElementById( 'wrap_drop_down_new' );
        top_element.addEventListener( "mouseout", mouse_out, false ); 
        top_element.addEventListener( "mouseover", top_mouse_over, false ); // Line 1487
        bottom_element.addEventListener( "mouseout", mouse_out, false ); 
        bottom_element.addEventListener( "mouseover", bottom_mouse_over, false ); 
    };
    return publik;

}());
/*  Use this to create Event on completion of .js and remove cStart().

    var event_load_js = document.createEvent("HTMLEvents");
    event_load_js.initEvent( "blur", true, false );

每个 Beat 请求包含的代码 top_mouse_over

/**
 *MMenu
 */

var MMenu = ( function () 
{
    /**
     *Private
     */

    var top_element,
        bottom_element,
        time_out_id = 0,
        TIME_DELAY = 1000;

    function showBottom()
    {
        top_element.style.border = '1px solid #cfcaca';
        top_element.style.borderBottom = '3px solid #cfcaca';
        bottom_element.style.visibility = 'visible';
    }
    function hideBottom()
    {
        top_element.style.border = '1px solid #faf7f7';
        bottom_element.style.visibility = 'hidden';
    }
    function top_mouse_over()
    {
        window.clearTimeout( time_out_id );
        showBottom();
    }
    function bottom_mouse_over()
    {
        window.clearTimeout( time_out_id );
    }
    function mouse_out()
    {
        time_out_id = window.setTimeout( hideBottom, TIME_DELAY );
    }
4

3 回答 3

4

从浏览器中复制动态生成的代码并将其粘贴到 Notepad++ 中并搜索“?” 看看你是否有任何 unicode 字符。我很确定控制台没有说实话。我以前也遇到过这种情况。

请参阅:https ://stackoverflow.com/a/9246128/1220302

于 2012-07-13T17:14:40.797 回答
2

可能与 unicode 无关。可能是属性 onclick 或其他内联脚本中缺少引号。我刚碰到这个。例子:

<button onclick="alert('hi') title="hello">Click me</button>

此错误仅在解析 js 时发生,并在第 1 行给出错误。我发现这仅在 IE 中引发脚本解析错误,而不在 Chrome 中。错误是:

SCRIPT1004: Expected ';' 
mypage.html, line 1 character 54

因为我使用 jquery.html() 将此 HTML 注入到 DIV 中,所以它没有在页面加载时解析它,并且仅在某些条件下 - 但实际上这是一个脚本解析错误。

于 2013-08-26T02:56:18.330 回答
1

Recently I also faced the same issue with IE 11, so I did the below things to fix the issue.

  1. Open console window in IE browser by pressing ‘F12’</li>
  2. Please change the IE version to 11 instead of the old version ( < IE11) from Emulation tab's document mode or right side top, there will be one drop-down having different IE versions.
  3. Browser will be reloaded automatically when we change the IE version
于 2017-04-24T05:14:41.483 回答