Другими словами, какая разница между
onclick="myFunction()"
и
onclick="JavaScript:myFunction()"
Другими словами, какая разница между
onclick="myFunction()"
и
onclick="JavaScript:myFunction()"
JavaScript:
TYPE/LABEL/PREFIX (не смог найти фактическое имя для него) в обработчике событий служит только только одна цель:
В IE IFF FIRST script на странице НЕ JavaScript, встроенный JavaScript на остальной части страницы (все еще есть?) имеет JavaScript:
с префиксом.
Не следует путать с протоколом JavaScript:
в href (который, кстати, также следует избегать). href="javascript:..."
требуется только в старых netscapes в теге AREA. Когда вы видите href="javascript:void(0)"
, кто-то должен использовать onclick="....; return false"
вместо этого, если они не помещают его туда, чтобы предупредить пользователя о том, что ссылка является управляемой javascript. Он отключится, если JS выключен.
Я искал официальную документацию из msdn, но вот дискуссии, чтобы поддержать меня:
Internet Explorer по умолчанию использует язык первого элемента scriptон анализирует. Поэтому, если первый элемент script - это javascript, вы не должны необходимо указать "javascript:" в обработчике событий.
http://www.webdeveloper.com/forum/archive/index.php/t-135462.html
Вы должны сказать, что вы используете VBS AND JScript, иначе предположение - это все функции VBS в этом случае. Либо добавьте (пустой?) элемент JavaScript script [в верхней части страницы] или используйте протокол jscript: на по изменению. OnChange = "JScript: location.hash = это [this.selectedIndex].value;"
Пример
<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>
Как @emhemient упоминает в своем комментарии, javascript
в onclick
ничего не делает, это в основном бесполезный ярлык. Префикс javascript
используется в теге <a>
, чтобы сообщить браузеру запустить следующее как javascript, точно так же, как если бы вы ввели то же самое в свой браузер. Вы можете попробовать его в строке местоположения своего браузера и посмотреть, просто введите javascript: alert("Hello")
.
Подводя итог:
В onclick
: браузер ожидает, что это будет javascript, поэтому, если вы введете javascript:
в качестве префикса, браузер скажет: "О, как странно, вы помещаете ярлык".
В <a href
или в строке местоположения браузера: браузер не ожидает, что это будет javascript, поэтому, если вы введете javascript:
в качестве префикса, браузер скажет: "О, мне нужно запустить это как javascript",.