#javascript #html #css #href
#javascript #HTML #css #href
Вопрос:
Мне нравится запускать / открывать действие ссылки (ссылка активирует индикатор), но я не хочу открывать веб-сайт links. Есть ли возможность это сделать? Как открывается ссылка в фоновом режиме?
<a id='button' href="http://192.168.178.123/5/on:80">Button</a>
Возможно ли это с помощью JS или других языков?
Спасибо!
Ответ №1:
Простая установка href в «#» остановит работу браузера в любом месте.
Комментарии:
1. Спасибо — но мне нужен IP-адрес href. При нажатии на ссылку появляется индикатор, но я не хочу открывать сайт по ссылке. Это должно активировать только индикатор.
2. Вы можете просто сохранить это в теге данных, подобном этому, <a id=’button’ href=»#» data-ip=»192.168.178.123/ 5 / on: 80″>Кнопка</a>
Ответ №2:
Вы можете использовать вызов ajax на javascript.
var xhReq = new XMLHttpRequest();
xhReq.open("GET", "http://192.168.178.123/5/on:80", false);
xhReq.send(null);
var serverResponse = xhReq.responseText;
Вот пример того, как привязать функцию к кнопке
<button onclick="myFunction()">Click me</button>
<script>
function myFunction() {
//Ajax call here
}
</script>
Вы можете прочитать больше здесь: https://www.w3schools.com/jsref/event_onclick.asp
Комментарии:
1. Спасибо за ваш ответ. Как я могу реализовать это в <a> или <button>? Что мне нужно сделать?
2. Если я попробую это, ссылка не откроется, но для моего светодиода больше нет триггера / активации : (
Ответ №3:
попробуйте это
<a id='button' href="http://192.168.178.123/5/on:80" onClick="fn(event)">button</a>
function fn(e){
e.preventDefault();
}
Комментарии:
1. Спасибо! Если я попробую это, ссылка не откроется, но для моего светодиода больше нет триггера / активации : (
Ответ №4:
Вы можете прослушать событие, которое срабатывает при нажатии кнопки, и отправить запрос с помощью javascript.
document.getElementById("button").addEventListener("click", (e) => {
e.preventDefault();
const request = new XMLHttpRequest();
const url = 'http://192.168.178.123/5/on:80';
request.open("GET", url);
request.send();
});
<a id='button' href="#">Button</a>
Комментарии:
1. Спасибо 🙂 Если я попробую это, ссылка не откроется, но для моего светодиода больше нет триггера / активации : (
Ответ №5:
Мне нужно было что-то подобное для другой цели, и я сделал это таким образом:
в Head:
<script>
function sleep(ms) { //wait function
return new Promise(resolve => setTimeout(resolve, ms));
}
async function ninjaLink() { //doing sneaky stuff
var ifrm = document.createElement("iframe"); //Creating iFrame
ifrm.setAttribute("src", "YOUR_URL"); // Setting iFrame's source
ifrm.style.display = "none"; //Hiding iFrame
document.body.appendChild(ifrm); //Adding iFrame
await sleep(3000); //Giving the web page time to load
document.body.removeChild(ifrm); //Removing iFrame
}
</script>
в теле:
<a href="javascript:ninjaLink()">Link</a>
Он открывает ссылку в скрытом виде iFrame
, а затем уничтожает ее.