#javascript #html #internet-explorer
#javascript #HTML #internet-explorer
Вопрос:
У меня есть очень простое требование html, где при некотором значении параметра мне нужно скрыть гиперссылку в тексте и показать указатель мыши на текст.
Ниже приведен мой тестовый html.Как я должен обрабатывать свой Javascript, где при accesscode = 10 я должен показывать только указатель мыши, а не href?
<!DOCTYPE html>
<html>
<body>
<h1>test Heading</h1>
<p>Test screen.</p>
<a id="tagUrl" class="button" href='https://growthModeltest.com' target="_blank" rel="MonthlyReport">Learn More</a>
</body>
<script>
var accessCode= 10;
var hideElem = document.getElementById("tagUrl");
if(accessCode == 10){
//should not display the link, instead show the hover.
hideElem.href = '#';
}
</script>
</html>
Комментарии:
1. Вы выбираете элемент перед его отображением…..
2. Я переместил скрипт внизу, но мой вопрос по-прежнему заключается в том, как отобразить условие href. Мне нужно показывать указатель мыши вместо href для определенного значения параметра.
3. понятия не имею, что вы имеете в виду, он должен показывать наведение…..
4. @epascarello мое требование — показывать гиперссылку только для некоторых ролей пользователей. Если у пользователя нет определенных привилегий, вместо отображения гиперссылки я хочу показать указатель мыши, сообщающий, что «Ссылка для вас недоступна»
Ответ №1:
Сначала удалите target=»_blank» также из ссылки, и если вы не хотите, чтобы пользователь перенаправлял в начало страницы. Вы можете использовать javascript:void(0) внутри тега href, чтобы избежать этого
Попробуйте это:
var accessCode = 10;
var hideElem = document.getElementById("tagUrl");
if (accessCode == 10) {
//should not display the link, instead show the hover.
hideElem.href = 'javascript:void(0)';
hideElem.removeAttribute('target');
hideElem.title = 'Link is not active now';
}
<h1>test Heading</h1>
<p>Test screen.</p>
<a id="tagUrl" class="button" href='https://growthModeltest.com' target="_blank" rel="MonthlyReport">Learn More</a>
Ответ №2:
Если вы хотите создать всплывающую подсказку, которая отображается при наведении курсора мыши на ссылку, присвойте title
свойство.
var accessCode = 10;
var hideElem = document.getElementById("tagUrl");
if (accessCode == 10) {
//should not display the link, instead show the hover.
hideElem.href = '#';
hideElem.title = 'Link is not active now';
}
<h1>test Heading</h1>
<p>Test screen.</p>
<a id="tagUrl" class="button" href='https://growthModeltest.com' target="_blank" rel="MonthlyReport">Learn More</a>
Комментарии:
1. спасибо за обновление, но я все еще не хочу, чтобы пользователь нажимал на ссылку, когда accessCode == 10. hideElem.href = ‘#’; все равно переведет пользователя в следующее окно. В принципе, я хочу отключить ссылку и показывать наведение на нее.
2. @MSV ты пробовал этот фрагмент? Нажатие на ссылку никуда не перенаправит пользователя
Ответ №3:
Попробуйте выполнить тест с кодом ниже.
<html>
<head>
<title>Disable Link using JavaScript</title>
</head>
<body>
<h1>test Heading</h1>
<p>Test screen.</p>
<a id="tagUrl" class="button" href='https://growthModeltest.com' target="_blank" rel="MonthlyReport">Learn More</a>
</body>
<script>
var lnk = document.getElementById('tagUrl');
var accessCode = 10;
if (accessCode == 10) {
lnk.title="'Link is not available for you";
if (window.addEventListener) {
document.addEventListener('click', function (e) {
if (e.target.id === lnk.id) {
e.preventDefault(); // Comment this line to enable the link tag again.
}
});
}}
</script>
</html>