2013-10-08 77 views
2

检查herejavascript:函数语法是什么意思?

javascript:Function("alert('this is ok')")(); 

一样

new Function("alert('this is ok')")(); 

叫什么语法?

有没有参考?

编辑

对不起,我的错,那只能是一个标签,它不等于new

<script> 
    javascript:C("val"); 
    wener:C("val"); 
    function C(v) 
    { 
     this.val = v; 
     alert(window.val) 
    } 
</script> 
<a href="javascript: alert('foo');">click me</a> 

对于<a href="javascript: alert('foo');">click me</a>看到URI_scheme(感谢apsillers),只有在HTML draft-hoehrmann-javascript-scheme

+1

尼尔给出了正确的答案。 –

+0

@RakeshJuyal我的答案消失了:-( – Neal

回答

5

这就是所谓的 “属性中使用JavaScript的老样子,” 有关。

你也可以这样写:

poop:Function("alert('ohai')")(); 

你举的例子只是JavaScript代码,而不是HTML属性,所以它只是一个标签。

0

当您想要在浏览器的地址栏中执行JavaScript时,可能会使用此方法。将javascript:Function("alert('this is ok')")();复制/粘贴到浏览器的地址栏中,然后按Enter键。

1

当您指定完全限定的链接时,冒号左侧的文本被称为scheme

<a href="https://example.com/foo">foo</a> 
     ^scheme is "https" 

浏览器允许你指定的javascript在HTML标记的方案,在这种情况下,浏览器解释链接内容结肠作为脚本的正确执行,而不是一个目的地资源。

<a href="javascript:alert('I am a script, formatted as a link!')">foo</a> 
      ^scheme is "javascript" 

(请,从来没有做到这一点。使用addEventListener("click", function() { ... })代替)如果您在非链路环境的javascript:前缀

,但是,它解释为JavaScript label。这完全没有必要。