我正在使用JSLint在Rhino中使用jslintant.js进行检查。
我发现了一些奇怪的东西,想知道是否可以从其他程序员那里得到一些输入。基本上,下面这一行将得到一个JSLint 'Script URL'错误:
var a = '<a href="javascript:alert(\'I am a bookmarklet\');" >Drag me to your Toolbar</a>';错误:
Lint at line 124 character 35: Script URL.我深入研究了Douglas在fulljslint.js中编写的代码,发现实际上他正在对此进行测试,如下所示:
// javascript url
jx = /(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,因此,考虑到这个约束以及拖放书签只使用A标记的HREF属性这一事实。我们如何动态创建通过JSLint测试的书签?
谢谢你的意见。
发布于 2011-11-01 13:08:51
JSLint有时会太挑剔。在这种情况下,我建议尝试一个解决办法。下面两个部分通过将字符串拆分成更小的部分来绕过regex测试:
var x = ['<a href="javascript', ':', 'stuff'].join('');或
var tmp = '<a href="javascript'
var x = tmp + ':stuff"';不幸的是,您不能仅仅将字符串文本与+连接(正如这个答案的旧版本所建议的那样),因为新版本的JSLint添加了一些特殊的代码来检测这一点:
var x = 'javascript' + ':' + 'stuff'; // JSLint might still give a warning here.编辑:如果您使用的是JSHint而不是JSLint,您可以设置"scripturl“选项来抑制此类警告,而无需使用解决办法:
/*jshint scripturl:true*/
var x = 'javascript: foo()';发布于 2014-12-12 09:03:51
我也遇到了这个问题,就像有人建议的那样,你可以把它分成几个部分来避开警告,但是
var x = 'javascript' + ':';不起作用。一个比以前建议的方法更简单的方法是:
var x = 'javascript' + ':'.toLowerCase() + 'alert("my action")';https://stackoverflow.com/questions/7966880
复制相似问题