2014-01-13 34 views
0

在以下的html代碼片段中,javascript:做了些什麼?做「javascript:」在事件屬性中做些什麼?

<input type="text" name="Name" id="Name" value="" 
onkeydown="if(event.keyCode == 13){ 
        if(IsValidBrowser()==true){ 
          javascript:Continue(); 
         //^^^^^^^^^^^ 
        } else { 
        alert('Please use Safari, Google Chrome, or MS 
        Internet Explorer version 7.0 or higher.'); 
        } 
      }" 
/> 

我認爲javascript:只是在一個<a>標籤的href屬性可以使用,但我碰到這個。 謝謝。

+5

這是一個goto標籤。它不應該在那裏。 – SLaks

回答

1

這裏的要點是javascript: prefix有一點讓人困惑的用例。有2種不同的用途:

1-第一個和最重要的用途是當你想把一塊你的javascript代碼放在一個錨href屬性中時,它是極其重要的,加上javascript: prefix,像:

<a href="javascript:alert('my href code');">My Link</a> 

在此使用javascript: prefix是不可選的,你不能更改標籤javascript

2-另一種用法是當您在JavaScript代碼中使用javascript: prefix時。它很可能會對它所扮演的角色感到困惑。實際上在JavaScript代碼中,開發人員可以使用前綴在其代碼上設置標籤,這沒有任何影響。

如果是這樣,那爲什麼呢?

答案只是將一個標籤放在一段代碼上,以使其更具描述性或編碼器可能具有的任何其他原因。在此基礎上使用:

javascript:Continue(); 

可能是這樣的:

myloopcontinue:Continue(); 

myloopcontinue:沒有實際效果。

我最喜歡的功能,這些標籤給我們的是,當我們在循環使用它們,以continuebreak JavaScript的關鍵字,像這樣:

myloop:for(;;) { 
    if(window.myvar===undefined){ 
     window.myvar = "Hello myloop"; 
     alert('myloop first iterate'); 
     continue myloop; 
    } 
    alert('myloop second and last iterate'); 
    break myloop; 
} 

有關這些類型的標籤更infrmation檢查這個link