我正在使用 jslintant.js 在 Rhino 中运行 JSLint 检查强>。
我发现了一些奇怪的东西,想知道我是否可以从其他程序员那里得到一些意见。基本上,以下行会出现 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 Crockford 在 fulljslint.js 中编写的代码 发现他确实是这样测试的:
// javascript url
jx = /(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,
因此,鉴于此约束以及拖放小书签仅使用 A 标签的 HREF 属性这一事实。我们如何动态创建通过 JSLint 测试的小书签?
感谢您的输入。
最佳答案
JSLint 有时可能过于挑剔。在这种情况下,我建议尝试寻求解决方法。以下两个通过将字符串拆分为更小的部分来绕过正则表达式测试:
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()';
关于javascript - JSLint 和书签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7966880/