#javascript #href #tel
#javascript #href #tel
Вопрос:
У меня есть простая панель навигации WordPress, в которую я хотел включить tel:
ссылку для автоматического вызова веб-сайта компании.
Из-за миллионов проблем с сохранением <a>
ссылки внутри навигационной панели я выбрал <button>
и добавил JS-код для выполнения перенаправления.
document.querySelector('.btn--call').addEventListener('click', function () {
window.open('tel:' this.innerText, '_self'); //same effect for using `_system`)
});
Проблема в том, что когда я нажимаю кнопку, я перенаправляюсь на страницу телефона, но номер, по которому я звоню, пуст.
Полученная переменная является правильной, поскольку в журнале консоли this.innerText
выводится ожидаемое значение.
Проблема также не с веб-сайтом, потому что у меня есть <a href="tel:...>
в каком-то другом месте, и это работает как шарм.
Я пытался использовать window.location.href='tel:' this.innerText;
, но эффект был тот же.
Есть ли какой-либо способ, которым я мог бы правильно проанализировать номер без необходимости изменять его на <a>
?
Любая помощь была бы очень признательна.
Комментарии:
1. Из любопытства, я не так хорошо знаком с WordPress, в чем проблемы с использованием ссылок в панели навигации? Разве это не то, куда должны идти ссылки?
2. Обычно это так. Проблемы начинаются, когда вы хотите, чтобы одна из ссылок была блоком с абсолютным расположением с оформлением кнопки. WP хорош, но обычно он жестко контролирует применяемые стили
Ответ №1:
Попробуйте это, он обращается к элементу через target, а не this
через обработчик событий.
document.querySelector('.btn--call').addEventListener('click', function (e) {
location.href = 'tel:' e.target.innerText;
});
Комментарии:
1. Нет. Тот же эффект.
e.target
иthis
, по сути, являются одними и теми же объектами, если, я думаю, не используются функции стрелки. Спасибо за отзыв!2. @aln447 вы использовали мой точный код, потому что у меня была опечатка в
location.href
?3. Нет. Я использовал только конечную сторону. Теперь я попробовал это с
location.href
вместоwindow.location.href
. К сожалению, тот же результат