2013-10-08 101 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。這完全沒有必要。