Запускать / открывать ссылку, не открывая ее в HTML

#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 , а затем уничтожает ее.