Для посилання має бути вказана ціль HREF, щоб вона могла бути об’єктом відображення.
Більшість браузерів не розбере розширений JavaScript у
<A HREF=""
тег, наприклад:
<A href="JavaScript:var elem = document.getElementById('foo');"
оскільки тег HREF у більшості браузерів не дозволяє пробілу чи перетворить пробіл у% 20, HEX еквівалент SPACE, який робить ваш JavaScript абсолютно марним для інтерпретатора.
Отже, якщо ви хочете використовувати тег HREF для виконання вбудованого JavaScript, ви повинні вказати дійсне значення для HREF FIRST, яке не надто складне (не містить пробілу), а потім надати JavaScript у тезі атрибутів події, як OnClick , OnMouseOver, OnMouseOut тощо.
Типова відповідь - зробити щось подібне:
<A HREF="#" onclick="var elem = document.getElementById('foo');">Get the object</a>
Це прекрасно працює, але це змушує сторінку перескакувати доверху, оскільки знак фунта / хеш-тег підказує це зробити.
Просто надання тегу знака фунта / хеша в тезі HREF фактично визначає корінь якоря, який завжди, за замовчуванням, у верхній частині сторінки, ви можете вказати інше місце, використовуючи вказівку атрибута NAME всередині тегу HREF.
<A NAME='middleofpage'></A>
Потім ви можете змінити свій тег HREF, щоб перейти на 'middleofpage' та виконати JavaScript у події OnClick, як тільки це станеться так:
<A HREF="#middleofpage" onclick="var elem = document.getElementById('foo');">Get the object</a>
Буде МНОГО разів, коли ви не хочете, щоб це посилання стрибало навколо, тож ви можете зробити дві речі:
<A HREF="#thislinkname" name='thislinkname' onclick="var elem = document.getElementById('foo');">Get the object</a>
Тепер при натисканні він нікуди не піде, але це може призвести до того, що сторінка переглянеться в центрі від поточного огляду. Це не дуже. Який найкращий спосіб забезпечити вбудований javascript, використовуючи A HREF, але без того, щоб робити що-небудь з перерахованого вище? JavaScript: void (0);
<A HREF="JavaScript:void(0);" onclick="var elem = document.getElementById('foo');">Get the object</a>
Це сповіщає браузер переходити ЗАРАЗ, але замість цього виконувати дійсний JavaScript: void (0); функція спочатку в тезі HREF, оскільки вона не містить пробілу, і не буде аналізуватися як URL-адреса. Замість цього він буде працювати компілятором. VOID - це ключове слово, яке при постачанні з параметром 0 повертається НЕ ВИЗНАЧЕНО, яке не використовує більше ресурсів для обробки значення повернення, яке відбудеться без вказівки 0 (це більше управління пам’яттю / продуктивністю).
Наступне, що трапляється - виконується OnClick. Сторінка не переміщується, нічого не відбувається на екрані.
javascript:
є однією з багатьох схем URI: en.wikipedia.org/wiki/URI_scheme , якdata:
.