2013-03-13 43 views
3

我不寫內聯javascript,但我總是在代碼庫中看到並使用它:Inline javascript,javascript中'javascript'是什麼意思('asdf')'

<div onClick='javascript:alert("asdf");'></div>

我做了一些測試,發現我所有的瀏覽器,即使在IE5模式IE,你可以改變javascript字面上什麼,以及alert將火就好了。

<div onClick='qwerty:alert("asdf");'></div>

什麼是分隔符?它背後的歷史是什麼?它是否需要或有用?我似乎記得<script type="text/javascript">並不真的需要type屬性集,是否與此有關?我嘗試了一些Google搜索,但很難搜索。

+0

我相信這回答你一半的問題:http://programmers.stackexchange.com/a/62118 – Dave 2013-03-13 22:40:26

回答

6

這是一個label,這只是需要在IE中,如果頁面上的第一個腳本是VBScript的
如果添加<script type="VBScript"></script>到(老的?)IES你以後的腳本,如果他們是JavaScript的具體將失敗,並沒有標籤的javascript:告訴IE切換回

見我的答案在這裏:What does the JavaScript pseudo protocol actually do?

+0

這樣我就可以把我想要的任何字,它會在任何瀏覽器上工作? – 2013-03-13 22:43:30

+0

是的。它被當作一個標籤 – mplungjan 2013-03-13 22:43:52

+1

但是當你*可以*放置任何單詞時,這樣做是無稽之談的(除非你打算打破或繼續循環),所以不要在那裏放任何東西。 – Quentin 2013-03-13 22:48:27

2

一般來說它只是一個標籤,類似於:

label: 
    statement; 

這就是爲什麼qwerty:alert("asdf")工作,因爲它是合法的Javascript。

IE的處理方式不同;你可以在this answer找到更多的細節。

相關解答和鏈接:

+0

我相信我實際回答它來自 – mplungjan 2013-03-13 22:44:40

+1

@mplungjan是的,我已經提高了您的答案。 :) – 2013-03-13 22:45:25

相關問題