上下文:对于JavaScript项目的开发版本,我编写了一个小实用程序来跟踪脚本文件依赖性(因为我不喜欢任何现有库的欢闹语法要求).我希望以类似于其他语言的方式使其工作,所以我决定解析导入的文件以获得如下评论:
// DEPENDS: myurl.js //
Run Code Online (Sandbox Code Playgroud)
使用jQuery的$ .ajax()构建和评估依赖关系图并获取依赖关系.这适用于顶级文件.但是,使用ajax调用删除的文件会被删除注释,因此我无法进一步解析依赖项.
为了您的兴趣:周期是
问题:有没有办法阻止jQuery从$ .ajax()加载的文件中删除JavaScript注释标记?
代码:我用这种方式调用ajax
$.ajax({
url: fileName,
dataType: 'text',
context: this,
success: function(jqXHR) {
this.parseImport(fileName, jqXHR);
}
});
Run Code Online (Sandbox Code Playgroud)
(从提供fileName的方法内部来看,这是正确的).我希望dataType:'text'会强制jQuery从字面上导入文本,但是,它没有:-D
$ .ajax()的API文档告诉我,dataType:text元素的内容是用window.String解析的,但我不确定,window.String对它的输入做了什么.也许解决方案在这部分的某个地方?
如果有人能指出我正确的方向,我会很高兴的.
您使用的方式ajax不会从文件中删除注释。您要求 jQuery 从服务器加载文本。它将忠实地加载该文本,而不以任何方式修改它。我怀疑您在服务器端有一些缩小/压缩过程来删除注释。jQuery 代码不会。
但您仍然可以通过不使用注释来解决删除注释的问题。您可以使用字符串代替:
"DEPENDS: myurl.js";
Run Code Online (Sandbox Code Playgroud)
因为这不是评论,所以不应该被删除。乍一看有点奇怪,但 JavaScript 的语法有ExpressionStatement,它是一个完全由表达式组成的语句。当然,字符串文字本身就是一个有效的表达式。(这就是他们"use strict";在 ES5 中所做的,但不会给 ES5 之前的 JavaScript 引擎带来问题。)
| 归档时间: |
|
| 查看次数: |
168 次 |
| 最近记录: |