在网页中检测重复javascript函数名的工具?
背景 我们有一个web应用程序,其中几个开发人员编写了几个.js文件来操作DOM,而重复函数名的问题已经潜入我们的应用程序中 问题 有谁能推荐一个工具,当我们不小心编写了一个包含两个同名javascript函数的网页时,它会警告我们 示例 HTML页面 由于foo()在页面中声明了两次,因此显然只加载优先的一个 我使用的工具似乎忽略了这一点。Firebug只显示加载的函数。Netbeans将在navigator中显示这两个函数(没有警告),但一次只查看一个文件(即,我不能将它指向HTML文件,同时查看它和.js)。web developer extensions允许我一次查看所有内容,但没有错误或警告。Firefox的错误控制台也不会抛出任何警告或错误。我也是在网页中检测重复javascript函数名的工具?,javascript,Javascript,背景 我们有一个web应用程序,其中几个开发人员编写了几个.js文件来操作DOM,而重复函数名的问题已经潜入我们的应用程序中 问题 有谁能推荐一个工具,当我们不小心编写了一个包含两个同名javascript函数的网页时,它会警告我们 示例 HTML页面 由于foo()在页面中声明了两次,因此显然只加载优先的一个 我使用的工具似乎忽略了这一点。Firebug只显示加载的函数。Netbeans将在navigator中显示这两个函数(没有警告),但一次只查看一个文件(即,我不能将它指向HTML文件,同
谢谢 我的解决方案是一个简单的Java HTML解析器(我刚刚用regexps破解了一个解析器;您可能想试试)和ApacheRhino库() 如果函数被重新定义,应该可以在Rhino中重载解析器以抛出错误 我使用John Resig稍微修改过的env.js()版本来模拟浏览器。这允许我在JUnit测试中测试JavaScript。我可以填写表格、提交表格、检查页面布局等 有关详细信息,请参阅我的博客:我经常使用 简而言之,它是一个使用JavaScript的JavaScript“编译器”。通过观看道格拉斯·克罗克福德的训练视频,我学到了很多东西
它不仅检查重复的函数,还检查全局变量和一大堆其他东西。正如Douglas在他的一个视频中所说,它只允许您使用JavaScript的好部分。好吧,使用解析器可能并不总是理想的,因为它需要额外的步骤将您和其他人的代码复制和粘贴到解析器中,即使这样,我也不确定它是否能捕获您想要的内容。协作Javascript开发经过时间考验的解决方案是为代码命名名称空间
var myNamespace = function (){
var myPrivateProperty;
var myPrivateFunction = function(){};
return{
myPublicProperty: '',
myPublicFunction: function(){}
}
}();
这是基于道格拉斯·克罗克福德的
然后,您可以通过以下方式调用公共函数:
myNamespace.myPublicFunction();
以及您的公共财产:
myNamespace.myPublicProperty;
每个开发人员都可以在自己的名称空间中进行开发,这样就不会干扰其他人的代码。ScriptManager.RegisterClientScriptInclude(Me,Page.GetType,“jsTest”,“test.js”)+1表示jslint。特别适合捕捉不寻常的浏览器相关问题感谢您的响应!我确实尝试过jsLint,发现它很有用,但因为我要处理多个JS文件以及HTML页面中的脚本,所以很难使用它。我正在寻找的理想工具是将URL或HTML文件作为输入,并返回所有问题?我发现了一个非常时髦的工具,它将JSLINT作为构建过程的一部分吗?因为很明显,没有一个理想的工具适合我们的具体情况,我把这个想法带给了我的老板——他让我组装了一个PoC,看起来我们将继续使用它。我们甚至可以尝试在现有代码上实现它。谢谢博客链接是dead@AliQanavatian谢谢,修好了。
myNamespace.myPublicFunction();
myNamespace.myPublicProperty;