2010-08-26 3 views
1

Если у меня есть функция, как это:Вызов функций JS из ссылок в IE?

function foo() 
{ 
    //... 
    return false; 
} 

я могу назвать это так:

<a href="#" onClick="foo()">Run Foo</a> 

Однако во всех браузерах, это положит # в URL, который я не хочу.

Так вместо этого я сделать это:

<a href="javascript:foo()">Run Foo</a> 

Который работает отлично в хром, но в IE он загружает страницу, содержащую строку false.

Какая у вас лучшая практика?

ответ

3

Вам не нужен протокол javascript:.

<a href="#" onclick="foo(); return false">Run Foo</a> 

- это все, что вам нужно.

+0

я себе никаких оснований для этого не было вниз проголосовали. +1 –

+0

кажется, что кто-то просто одеяло вниз - проголосовал за каждый ответ. –

1

Как @wrumbsy говорит ...

Вам не нужен Javascript: протокол.

<a href="#" onclick="foo(); return false">Run Foo</a>

... но это означает, что вам не нужен якорь <a> либо. Используйте только привязки для гиперссылок; не для JS-усиленной интерактивности.

Пролет будет работать так же хорошо, с cursor:pointer; CSS собственности:

<span style="cursor:pointer;" onclick="foo(); return false">Run Foo</span> 
+0

Но разве Google не обрабатывает якоря иначе, чем охватывает? –

+0

Как так? Я бы сказал, да, Google делает, но именно поэтому вы не захотите использовать якорь. –

+0

@John Isaacks - ... но это менее актуально для SEO и более актуально для доступности. –

Смежные вопросы