Додавання функції 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.