2010-04-11 1 views
2

Можно создать дубликат:
When do I need to specify the JavaScript protocol?Должен ли я добавить «javascript:» перед функцией тега html?

, например

<body onload="javascript:something();"> 

в этом коде, я должен поставить javascript:?

некоторые коды attatch javascript:,

, но некоторые этого не делают.

Что является безопасным и правильным?

+0

жаль мой бедный английский –

+0

Дубликат: http://stackoverflow.com/questions/2321469/when-do -i-need-to-define-the-javascript-protocol –

+0

Хорошо, это действительно действительно странно: я написал комментарий выше, начиная со слова «Дубликат». Я ** не написал **, начиная со слова «возможно», которое появляется как у меня. (Отмечено для модов.) –

ответ

3

Лучшим решением было бы избежать явного использования JavaScript в вашей разметке в целом и использовать что-то вроде jQuery, чтобы извлечь все это в отдельный файл; то вы можете сделать что-то вроде этого:

$(function() 
{ 
    // This will be run when the document is loaded. 
    alert('foo'); 

    $('#some-link').click(function() 
    { 
     // This will be run when the element with id `some-link` is clicked. 
     alert('bar'); 
    }); 
}); 
+0

+1 Для разделения проблем с помощью jQuery –

3

Нет. Просто используйте свой javascript.

<body onload="something();"> 

javascript: могут быть использованы с атрибутом a элемента href.

<a href="javascript:something();"> 

Но только для протокола, я предпочитаю использовать метод onload.

+4

Это нехороший совет. Псевдо-протокол JavaScript не должен использоваться для ссылок. Вы должны приложить обработчик к событию onclick, которое возвращает false, если вы хотите, чтобы ссылка на код выполнялась для JavaScript. –

+1

@Jimmy: Это не «протокол», это «схема». И это не псевдо-что-нибудь: http://tools.ietf.org/html/draft-hoehannann-javascript-scheme-01 Это было в IE с версии v3 (да, v3) и во всех основных браузерах с тех пор. –

+0

Чтобы быть справедливым, точка привязки может не иметь смысла семантически, и в этом случае обработчик кликов на семантически нейтральном элементе является лучшим вариантом, чем . Однако это не повод избежать схемы «javascript:». – outis

1

Я хотел бы предложить что-то вроде

<body> 
... 
<script> 
function something() {} 
window.onload = something; 
</script> 
Смежные вопросы