IE9报告存在缺少的分号

时间:2012-07-13 16:46:54

标签: javascript internet-explorer-9

我通过创建脚本标记并将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 );
    }

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分: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中,所以它不会在页面加载时解析它并且仅在某些条件下 - 但实际上它是一个解析错误的脚本。

答案 2 :(得分:0)

最近我也遇到了与IE 11相同的问题,所以我做了以下事情来解决这个问题。

  1. 按“F12”
  2. 在IE浏览器中打开控制台窗口
  3. 请从仿真标签的文档模式或右侧顶部将 IE版本更改为11 而不是旧版本(&lt; IE11),将有一个下拉列表具有不同的IE版本。< / LI>
  4. 我们更改IE版本时会自动重新加载浏览器