【问题标题】:</script> tag in wrong place</script> 标签在错误的位置
【发布时间】:2015-04-05 12:22:23
【问题描述】:

我不知道为什么我的网络浏览器会在我的网站上返回“SyntaxError: Unexpected EOF”错误。我没有进行任何更改,但必须更改一些内容,因为昨天同一站点运行良好。

这是我的源代码(直接来自 FTP 服务器):

<script type="">

 $(function(){

		    	$("body").append("<div class='tooltip2_showv' id='tooltip2_show'></div>");
	    	 	$('a.button.notactive').mousemove(function(e){

					$('#tooltip2_show').html( $('.popup',$(this)).html());
    		 		$('#tooltip2_show').show();
		            $('#tooltip2_show').css({'top': e.pageY + 5, left: e.pageX + 5,'position': 'absolute'});
				            
		        }).mouseout(function(){
		        	$('#tooltip2_show').hide();
	        	});
		    });

</script>

看起来不错,但从 Web 浏览器(Web Inspector)检查相同的代码:

<script type="">

 $(function(){

		    	$("body").append("<div class='tooltip2_showv' id='tooltip2_show'></script></div>");
	    	 	$('a.button.notactive').mousemove(function(e){

					$('#tooltip2_show').html( $('.popup',$(this)).html());
    		 		$('#tooltip2_show').show();
		            $('#tooltip2_show').css({'top': e.pageY + 5, left: e.pageX + 5,'position': 'absolute'});
				            
		        }).mouseout(function(){
		        	$('#tooltip2_show').hide();
	        	});
		    });

脚本标签的结尾位置错误!你知道为什么吗? 这不是唯一错误放置的“脚本结尾”标签。

复活节快乐;)

【问题讨论】:

  • 只使用
  • @Zet 也许你有一个与脚本混淆的扩展?

标签: javascript html web tags


【解决方案1】:

您不能在脚本中包含 &lt;/div&gt; 之类的内容。对于解析器来说,这意味着脚本已经结束。所以它包含一个自动的&lt;/script&gt;,因为这是正确的做法!

解决方案:不要将&lt;/div&gt; 放入您的脚本中。写&lt;\/div&gt;

哦,删除type="",这是错误的。

【讨论】:

  • 呵呵,你是如何在脚本中创建 div 的?他的代码很好,但他包含了一个结束执行的脚本标签。你不必逃避任何东西,因为一切都被引用了......
  • @Mikey 如果您再次阅读问题,OP 并没有自己添加&lt;/script&gt;;他发现&lt;/script&gt; 意外出现在 Web Inspector 中。文本是否在引号内(或在评论内,就此而言)无关紧要。
  • 啊,好的,我现在明白了。但是您仍然不必逃避正斜杠:)。也许是一个与脚本混淆的扩展?
  • @Mikey This W3C page 表示字符序列“”(结束标记打开分隔符)的第一次出现被视为终止元素内容的结尾。也就是脚本的结尾
  • 是的,但 OP 只是将一个字符串附加到浏览器将其解释为 HTML 的 DOM。你如何解释我的小提琴工作,控制台中没有错误并且附加了div。它已经逃脱了,您不必再担心了。
【解决方案2】:

编辑:只要您从附加方法http://jsfiddle.net/byadd1m3/ 中取出&lt;/script&gt;,您的代码就可以正常工作。我更喜欢的是创建元素并将其存储在变量中。用新的 div 定义一个变量,然后将变量附加到正文中。像这样:

 $(function () {
     var newDiv = "<div class='tooltip2_showv' id='tooltip2_show'></div>";
     $("body").append(newDiv);
     $('a.button.notactive').mousemove(function (e) {
         $('#tooltip2_show').html($('.popup', $(this)).html());
         $('#tooltip2_show').show();
         $('#tooltip2_show').css({
             'top': e.pageY + 5,
             left: e.pageX + 5,
             'position': 'absolute'
         });

     }).mouseout(function () {
         $('#tooltip2_show').hide();
     });
 });

为什么您的代码不起作用:

    $("body").append("<div class='tooltip2_showv' id='tooltip2_show'>
</script></div>");//What is script doing here?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多