jQuery代码仍在甚至被注释掉后执行(jQuery code still being execut

2019-09-17 08:14发布

我有一个基本的.js这个文件里面

//$('#show').html('<%= escape_javascript(render(:partial => 'show')) %>');

当.js文件被调用时,上面的代码会被执行并且即使它注释掉的部分呈现。 当代码被删除,部分永远不会被渲染。 该DOM保持不变,但我可以看到在命令行由服务器提供的部分存在。 是什么赋予了?

Answer 1:

你注释掉的JavaScript - 其执行上的客户端。

该部分呈现发生在服务器端,客户端曾经看到的JavaScript渲染之前。

换句话说,注释掉的JavaScript对服务器侧的处理零效果。 如果你不希望被显示在服务器端的字符串,其注释掉:

<%#= escape_javascript(etc) %>

假设该部分呈现这样的:

<h1>Foo bar baz</h1>
<div>Plugh!</div>

逃离这对JavaScript将会把新行成\n (并会逃避单精度和双引号等),让你与这个客户端上:

$('#show').html('<h1>Foo bar baz</h1>\n<div>Plugh!</div>');

无论是否JS被注释掉与否,局部会呈现,除非你注释掉的结果escape_javascript Ruby代码。

在客户端,如果JS被注释掉,它不应该更新show的HTML -你说这是什么?



Answer 2:

请检查是否是这样的线,或者你有这个调用别的地方:

//$('#show').html('<%=escape_javascript(render(:partial => 'show'))%>');alert('This is the line');


Answer 3:

也许你escape_javascript功能插入新行? 这将结束注释,并导致任何将要执行的新行之后。



Answer 4:

我也有类似的问题,并想出了一个变通方法是什么,我想它。 或许,这样的事情会帮助你!

相反注释的代码行出,尽量只建立一个逻辑运算符,给你一个“开/关”上你想运行的功能切换。 我定住了类似这样的,所以我可以关掉脚本,但保留以备将来参考:

var toggle = 1; 

if(toggle == 2){
   functions that you want to run when turned on... 
}

由于您的变量不等于二,if语句不会呈现出什么存储在它的内部,有效地“评论”的代码为你! 要重新打开所有你需要做的是改变“切换”变回2(你想或“开”值等等)。 只要一点点变通,我发现我自己,希望有所帮助!



文章来源: jQuery code still being executed even after being commented out