2012-06-04 4 views

ответ

13

Использование «JavaScript:» в начале HREF атрибута ссылка сообщает механизму javascript использовать остальную часть строки для интерпретации как javascript. В этом случае это приведет к синтаксической ошибке в строгой интерпретации, поскольку это фактически пустая строка javascript с закрывающей точкой с запятой. Как это:

; 

Большинство браузеров не будет выдавать ошибку, однако, как Javascript на ссылки стары синтаксис и его следует избегать, если это возможно. Вы можете спокойно использовать его как ссылку, которая ничего не делает, однако я бы не рекомендовал ее.

Если вы хотите ссылку ничего не делать, вы могли бы использовать это вместо того, чтобы:

<a href="#">Link</a> 
<a href="javascript:void(0);">Link</a> 
<a href="javascript:return false;">Link</a> 

Использование пустой HREF строки заставит браузер интерпретировать как относительную ссылку. URL-адреса, которые не начинаются с протокола или идентификатора, такого как домен высокого уровня или IP-адрес, будут относиться как относительные ссылки. Например, ссылка "index.htm" на домен "google.com" создаст ссылку "google.com/index.htm". Точно так же строка href "" создаст ссылку "google.com/", и поэтому пустые строки href заставят браузер перейти на новую страницу.

Обычно ссылка не отображает указатель курсора или не форматирует элемент как ссылку, если вы не указываете атрибут href, поэтому вы можете использовать его как элемент «привязки», который вы можете связать с использованием хэша символа в URL-адресе.Такие, как "http://google.com/#an_anchor" приведет вас к якорю похожее на это: <a id="an_anchor">This is an anchor</a>

Однако вы можете использовать CSS, чтобы заставить ссылку быть отформатирован, как это:

CSS:

a { 
    color: #00c; 
    text-decoration: underline; 
    cursor: pointer; 
} 

HTML:

<a>This is a link.</a> 

Пример: http://jsfiddle.net/J3RfH/

+0

Будут ли эти три якоря вызвать переходы страницы вверху страницы? – Pingpong

+4

В большинстве случаев ссылка '' связывает страницу с прокруткой вверх. – Nimphious

+0

'javascript:;'/';' определенно не является синтаксической ошибкой. –

0

Он ничего не делает, и предназначается, чтобы заменить поведение по умолчанию из a тега, чтобы пойти куда-то с не-оп, делая ссылку по сути, нецелесообразно.

5

Это не-op.

Другой распространенный способ href="#" но требует, чтобы вы return false в случае OnClick, чтобы избежать прыжков в верхней части страницы и получить в адресной строке в #.

Обратите внимание, что обычно полезно иметь ссылку как с JavaScript, так и без него, т.е. делать что-то вроде <a href="/whatever" onclick="dowhatever(); return false;">, чтобы люди без JavaScript просто открывали страницу классическим способом, в то время как люди с JavaScript получат все, что угодно, сделал с JS.

Если что-то не должно работать без JavaScript вообще, то есть нет никакого полезной href значения, рассматривать не используя a тег на всех, но использовать span с собственным стилем (cursor:pointer и, возможно, подчеркнуто).

0

если вы зададите некоторые функции после :, то он будет вызываться при помощи <a> tag.But здесь вы не указали какой-либо функции, поэтому ничего не произойдет

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