未终止的字符串文字

时间:2011-06-01 14:33:02

标签: javascript jquery

再一次,这些错误中的另一个......

在尝试之前我试过要解决这个问题,但找不到任何可以解决这个问题的方法。

所以我有:( 更新

<script type="text/javascript"> 
    $(function(){
        $('.episodes').live('click',function(){
            var id = $(this).attr('id').replace('episode_',''),
            width = 730,
            height = 645;

            if(id == 3){
                width = 635;
                height = 790;
            }                   

            ColdFusion.Window.create('Episode_'+id,'','/landing_pages/superhero/episode'+id+'.cfm',{width:width,height:height,center:true,draggable:false,resizable:false,modal:true});
        });
    });
</script>

我已尝试转义“text \ / javascript”&lt; \ / script&gt; ,但它要么根本不起作用而且不显示错误因为它不会将其识别为javascript语句或它将继续抛出错误。

Firebug说问题是:var id = $(this).attr('id').replace('episode_',''),,但我没看到那可能是个问题。

我正在考虑在底部的create方法中转义 / ,但我不认为它会有所作为,因为它显示错误位于顶部。

谢谢!

(适用更新) 我已经用分号问题尝试了所有答案,但它没有用。没有任何影响。还有其他想法吗?

我实际上将它粘贴到CMS中,它将通过SQL然后在我的文章中输出。我不明白为什么会引起问题,但我想这是另一回事。

使用FIX更新 错误是使用单引号。不得不将所有单引号更改为双引号。显然,当你将它插入数据库时​​,你必须要做的事情。

最终代码是:

<script type="text/javascript"> 
    $(function(){
        $(".episodes").live("click",function(){
            var id = $(this).attr("id").replace("episode_",""),
            width = 730,
            height = 645;

            if(id == 3){
                width = 635;
                height = 790;
            }                   

            ColdFusion.Window.create("Episode_"+id,"","/landing_pages/superhero/episode"+id+".cfm",{width:width,height:height,center:true,draggable:false,resizable:false,modal:true});
        });
    });
</script>

5 个答案:

答案 0 :(得分:5)

尝试使用分号:

<script type="text/javascript"> 
        $(function(){
            $('.episodes').live('click',function(){
                var id = $(this).attr('id').replace('episode_',''),
                var width = 730,
                var height = 645;

                if(id == 3){
                    width = 635,
                    height = 790;
                }                   

                ColdFusion.Window.create('Episode_'+id,'','/landing_pages/superhero/episode'+id+'.cfm',{width:width,height:height,center:true,draggable:false,resizable:false,modal:true})
            });
        });
    </script>

答案 1 :(得分:4)

错误意味着$('.episodes').live('click',function(){中的单引号之一不是单引号而是其他内容(可能是后引号)。

尝试用双引号(")替换所有这些,因为ASCII编码只包含一个双引号但有三个不同的单引号(''`)。

答案 2 :(得分:2)

问题存在于

var id = $(this).attr('id').replace('episode_',''),
    width = 730,
    height = 645

因为它最后需要分号,而不是逗号。

var id = $(this).attr('id').replace('episode_',''),
    width = 730,
    height = 645;

中的其他内容也是如此
if (id == 3) {...

答案 3 :(得分:2)

你的语法错了,javascripts使用了;终止声明

这是正确的解决方案

$('.episodes').live('click', function() {
    var id = $(this).attr('id').replace('episode_', '');
    var width = 730;
    var height = 645;
    if (id == 3) {
        width = 635;
        height = 790;
    }
    ColdFusion.Window.create('Episode_' + id, '', '/landing_pages/superhero/episode' + id + '.cfm', { width: width, height: height, center: true, draggable: false, resizable: false, modal: true });
});

修改

我很糟糕,你的语法也是对的。

答案 4 :(得分:0)

当我检查JsLint中的代码时,它不会抱怨任何未终止的字符串,只是在每个语句的末尾省略了分号。然而,这可能会产生一些意想不到的后果,因此很可能是错误消息的原因。

在每个语句的末尾加上分号:

<script type="text/javascript"> 
  $(function(){
    $('.episodes').live('click',function(){
      var id = $(this).attr('id').replace('episode_',''),
      width = 730,
      height = 645;

      if(id == 3){
        width = 635;
        height = 790;
      }                   

      ColdFusion.Window.create('Episode_'+id,'','/landing_pages/superhero/episode'+id+'.cfm',{width:width,height:height,center:true,draggable:false,resizable:false,modal:true});
    });
  });
</script>