在这里使用void
的目的是什么?如果只删除void()
,它也应该有效,对吧?
var b=document.body;
if(b&&!document.xmlVersion) {
void(z=document.createElement('script'));
void(z.src='http://www.google.ca/reader/ui/subscribe-bookmarklet.js');
void(b.appendChild(z));
}
else {
location='http://www.google.com/reader/view/feed/'+encodeURIComponent(location.href);
}
答案 0 :(得分:5)
void
是运行表达式并返回undefined
void 0 === undefined
void (foo = 42) === undefined
关于href="javascript:..."
如何运作。
除非返回的值未定义。
您需要返回undefined
,否则页面将被覆盖。使用void
关键字是实现此目标的最简单方法。
答案 1 :(得分:4)
是。它将无效地工作。
没有必要在那里使用空白。
答案 2 :(得分:3)
我用Google搜索了你的代码片段,看起来它通常嵌入在前面带有“javascript:”的链接中。引用void运算符的Mozilla引用:
JavaScript URI
当浏览器跟随javascript:URI时,它会评估URI中的代码,然后用返回的值替换页面内容,除非返回的值未定义。 void运算符可用于返回undefined。例如:
<a href="javascript:void(0);">Click here to do nothing</a> <a href="javascript:void(document.body.style.backgroundColor='green');">Click here for green background</a>
但请注意,javascript:URI现在经常不鼓励其他替代方案,例如事件。
来源:https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/void
因此,当代码在链接中执行时,它会阻止页面内容被覆盖。
在这种情况下,如果在没有javascript:URI的情况下执行代码,则void运算符不应该有任何区别。 void运算符只是简单地计算其输入表达式并返回undefined。