Додавання функції onclick для переходу до url-адреси в JavaScript?


100

Я використовую цей вигадливий маленький JavaScript, щоб виділити поле, коли користувач наводить на нього курсор. Не могли б ви сказати мені, чи є спосіб додати onclickфункцію, яка буде діяти як посилання та переходити до URL-адреси?

<script>
         $(function() {
            $('tr').hover(function() {
                $(this).css('background-color', '#eee');
                $(this).contents('td').css({'border': '0px solid red', 'border-left': 'none', 'border-right': 'none'});
                $(this).contents('td:first').css('border-left', '0px solid red');
                $(this).contents('td:last').css('border-right', '0px solid red');
            },
            function() {
                $(this).css('background-color', '#FFFFFF');
                $(this).contents('td').css('border', 'none');
                $('a#read_message.php').click(function(){ URL(); });
            });
        });
        </script>

Як отримати значення url, це посилання в одній з комірок таблиці або всі вони переходять на одну і ту ж URL-адресу
— Renon Stewart

2
У вас досить дивний ідентифікатор там '# read_message.php'?
— Алекс Гілл,

Відповіді:


168

Спробуйте

 window.location = url;

Також використовуйте

 window.open(url);

якщо ви хочете відкрити в новому вікні.


129

Просто використовуйте це

onclick="location.href='pageurl.html';"

9
Це відкриє посилання в тому ж вікні, тоді як прийнята відповідь відкриється в новому вікні. Я віддаю перевагу підходу цієї відповіді
— Хамману Самуелю

33

У jquery, щоб надіслати користувача на іншу URL-адресу, ви можете зробити це так:

$("a#thing_to_click").on('click', function(){
     window.location = "http://www.google.com/";    
});

цей спосіб теж спрацює, але наведене вище є більш правильним способом зробити це сьогодні

$("a#thing_to_click").click(function(e){
         e.preventDefault();
         window.location = "http://www.google.com/";    
});


8

HTML

<input type="button" value="My Button" 
onclick="location.href = 'https://myurl'" />

MVC

<input type="button" value="My Button" 
onclick="location.href='@Url.Action("MyAction", "MyController", new { id = 1 })'" />

6

Якщо ви хочете відкрити посилання на новій вкладці, ви можете:

$("a#thing_to_click").on('click',function(){
    window.open('https://yoururl.com', '_blank');
});

3

Якщо ви маєте справу з <a>тегом, і ви хочете перервати перехід до типового, замість цього hrefслід використовувати this.

Перейдіть до типової URL-адреси (yahoo):

<a href="https://yahoo.com" onclick="location.href='https://google.com';"> 

Перейдіть за новою URL-адресою (google) onclick:

<a href="https://yahoo.com" onclick="this.href='https://google.com';">

За допомогою thisви перериваєте поточну onclickподію браузера і змінюєтесь, hrefперш ніж продовжувати поведінку за замовчуванням для<a href='...


Привіт @Darvydas, наведений вище код працює належним чином, але як зачекати, поки сторінка завантажиться, щоб виконати чергову подію на нещодавно завантаженій URL-адресі.?
— FayazMd

@FayazMd не впевнений, що ти намагаєшся зробити? Зазвичай, якщо це JavaScript всередині DOM (поточно всередині елемента DOM a) як веб-сторінка, ви не можете контролювати поведінку JS на наступній сторінці (куди ви перенаправляєте сторінку браузера). Коли користувач залишає сторінку, це робиться. Якщо ви також не керуєте другою сторінкою, і можете прослухати завантаження сторінки для кожного користувача та перевірити document.referrer, чи це правильна людина. Крім того, може бути інша історія, якщо ви використовуєте щось на зразок розширення / доповнення для браузера, яке може прослуховувати зміни URL-адрес сторінки.
— Дарвідас Шілкус,

Привіт @Darvydas, дякую за вашу відповідь. Я хочу спробувати наступне. у консолі браузера використання javascript з функцією самовиконання може бути 1) я хочу завантажити URL-адресу свого веб-сайту і 2) хочу зачекати, поки він повністю завантажиться 3) так, що ця веб-сторінка має таблицю, з якої мені потрібно витягнути всі рядки. Я можу виконати крок 1, і якщо я перебуваю на вже завантаженому веб-сайті, то в консолі я можу витягти рядки таблиці (у коді JavaScript). Але, коли я намагаюся писати код послідовно для вищевказаних кроків, не вдаючись на кроці 2.
— FayazMd

2

Не зовсім впевнений, що я розумію питання, але ви маєте на увазі щось подібне?

$('#something').click(function() { 
    document.location = 'http://somewhere.com/';
} );

так, в основному javascript встановлений для виділення полів таблиці, коли користувач прокручує / наводить курсор на вміст / інформацію таблиці. я хотів би, щоб здавалося, що виділене поле можна натиснути, щоб вони були пов’язані зі сторінкою. якщо це має сенс. вибачте, якщо це не так.
— Джон Тейлор,

вирішили це. просто трохи адаптував ур-код замість того, щоб використовувати # я вклав tr для представлення таблиці, і це спрацювало. подяка
— Джон Тейлор

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.