2012-04-09 12 views
11

temelde yararsız etiket var, hiçbir şey yapmaz. javascript öneki, tarayıcıya aynı şeyi tarayıcınıza girmiş gibi, javascript olarak aşağıdakileri çalıştırmak için <a> etiketinde kullanılır. Kendi tarayıcınızın konum çubuğunda bunu deneyebilir ve görebilirsiniz, sadece javascript: alert("Hello") girin. Tarayıcınız bu javascript olmasını bekler, böylece bir ön ek olarak javascript: girerseniz tarayıcı diyecekler:JavaScript pseudo protokolü aslında ne yapıyor? <code>onclick</code> yılında</p> <pre><code>onclick="myFunction()" </code></pre> <p>ve <pre><code>onclick="JavaScript:myFunction()" </code></pre>

onclick yılında:

Özetlemek gerekirse 'Ah ne kadar tuhaf, bir etiket koymak'. <a href yılında veya tarayıcı konum çubuğuna

: 'Ah, javascript olarak bu çalıştırmanız gerekir': Tarayıcı önek olarak javascript: girerseniz tarayıcı diyecekler yüzden bu javascript olmasını beklemiyor.

+9

Belki 'javascript koyarak' karşı '' onclick="..."> ' ephemient

+2

Whoa, 'onclick' özniteliğini kullandığımdan bu yana çok uzun bir zaman geçti. Unobtrusive javascript, javascript içindeki öğeleri olaylara bağlamanıza ve çok daha kompaklaşmanıza olanak verir. – Spoike

+1

... ve JavaScript (TM) kapitalizasyon çılgınlığı başlıyor –

cevap

9

JavaScript: TİP/ETİKET/ÖN EK olay işleyicisi hizmet vermektedir (bunun için gerçek isim bulamadım) sadece bir amaç:

IE'de

, IFF sayfada İLK komut olduğunu NOT JavaScript, sayfanın geri kalanında satır içi JavaScript'in javascript: önekine sahip olması (hala sahip?) Vardı. Href'te javascript: protokolüyle karıştırılmamalıdır (bu arada ayrıca kaçınılmalıdır). href="javascript:..." sadece AREA etiketindeki eski netscapes'larda gereklidir. href="javascript:void(0)"'u gördüğünüzde, kullanıcının kendisine bağlantıyı javascript kullanan bir sürücü olduğu konusunda uyarmak için onclick="....; return false" kullanması gerekir. JS kapalıysa başarısız olur. İlk komut elemanı ayrıştırmak diliyle

Calling VBScript from Javascript

Internet Explorer varsayılan:

Burada msdn resmi belgeler aradım, ama bana destek olmak tartışmalar vardır. İlk komut öğesi javascript ise, olay işleyicinizde "javascript:" belirtmemesi gerekir.

http://www.webdeveloper.com/forum/archive/index.php/t-135462.html

Sen VBS VE JScript kullanan IE anlatmak zorunda

, aksi varsayım tüm fonksiyonlar bu durumda VBS olmasıdır. (boş?) JavaScript komut dosyası öğesini [sayfanızın üst kısmında] ekleyin veya onchange'deki jscript: protokolünü kullanın. onchange = "jscript: location.hash = bu [this.selectedIndex].? `In:; değer"

Örnek

<html> 
<head> 
<script language="VBScript"> 
' some vbscript here forces the default language 
' of the page to be VBScript and not jScript/JavaScript 
</script> 
</head> 
<body onload="javascript:alert('I am inline in an event handler - boo me')"> 
. 
. 
<a href="..." onclick="javascript:alert('and so am I'); return false">Click</a> 
. 
<a href="javascript:alert('javascript: PROTOCOL is NOT the same (but avoid it too)')"> 
    Click 
</a> 


</body> 
</html> 
+0

Vay, IE'de bu tuhaflığın farkında değildim! Hiç karşılaşmadığıma sevindim. – ephemient

2

@ephemient onun yorumunda bahseder gibi

, javascript arasındaki fark ne başka deyişle
+0

Olay işleyicilerinde önek "Aynı şeyi tarayıcınıza da girmiş olsaydınız" ile aynı fikirde değilim. Javascript PREFIX/LABEL tarayıcınıza yapıştırırsanız, bir PROTOKOL içine döner, ancak bu tamamen bir yan etkisi ve onclick – mplungjan

+0

ile ilgisi yoktur Thats tam olarak ne demek istediğimi, cevabını denemek için güncelledim Bunu daha açık hale getirin çünkü açıkçası bununla iyi bir iş yapmadım. –

İlgili konular