IE9报告缺少存在的分号



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

从浏览器中复制动态生成的代码,并将其粘贴到Notepad++中,然后搜索"?"以查看是否有unicode字符。我确信控制台没有说实话。我以前也遇到过这种情况。

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

可能与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,所以它在页面加载时并没有解析它,而且只在特定条件下解析——但事实上这是一个脚本解析错误。

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

  1. 按"F12"打开IE浏览器中的控制台窗口
  2. 请从"仿真"选项卡的文档模式或右侧顶部将IE版本更改为11,而不是旧版本(<IE11),将有一个具有不同IE版本的下拉列表
  3. 当我们更改IE版本时,浏览器将自动重新加载

最新更新