2013-05-29 2 views
0

У меня есть следующий код;Запустите jQuery, перезагрузите, промойте и повторите ... как?

<script> 
$(document).ready(function() { 
    $('a[href*="profile"]:contains("PETER PAN")').closest('tr').find('.fightActionInnerInner').click(); 
}); 

Как бы это запустить, а затем обновить страницу (скажем каждые 2-3 секунды) и повторить сценарий. Я использую Greasemonkey, если это помогает. Благодарю.

+0

ли вы иметь возможность закодировать, что в мой код выше, чтобы показать мне, как это работает? – AdamH

ответ

1

В JavaScript вы можете обновить страницу с window.location.reload(), history.go(0) или даже window.location.href=window.location.href

Код в документе готовой функции будет автоматически запускать снова на перезагрузки страницы.

Если вы хотите отложить что-то, вы можете сделать это с помощью setTimeout:

setTimeout(function(){ 
    //do something 
}, yourMillisecondsToWaitUntilStart); 

Для вашего кода было бы:

$(document).ready(function(){ 
     $('a[href*="profile"]:contains("PETER PAN")').closest('tr').find('.fightActionInnerInner').click(); 
     setTimeout(function(){ 
      window.location.reload(); 
     }, msToWait 
    }); 

Заменить msToWait с числом миллисекунд вы хотите задержать перезагрузка страницы.

+0

Вы могли бы ввести код в свой код выше, чтобы показать мне, как он работает? – AdamH

+0

Добавлен код – bpoiss

0

Подробнее о Meta refresh.

Просто поместите это внутри головы тега вашей страницы

<meta http-equiv="refresh" content="3"> 

Однако, я предлагаю вам прочитать всю страницу, а именно эти части (даже если вы в конечном итоге с помощью яваскрипта способ перенаправления, которые другие пользователи предположили, так как этот текст показывает некоторые общие недостатки освежать каждые несколько секунд, независимо от того, каким образом вы это делаете):

Использование мета обновления не рекомендуется в World Wide Web Consortium (W3C), так как неожиданное обновление может дезориентированных пользователей.

Недостатки

Мета теги Refresh имеют некоторые недостатки:

Если страница перенаправляет слишком быстро (менее чем за 2-3 секунды), с помощью кнопки «Назад» на < следующей странице может вызвать некоторые браузеры для перехода на страницу перенаправления, после чего снова будет перенаправлено> перенаправление. Это плохо для удобства использования, так как это может заставить читателя «застрять» на последнем веб-сайте. Считыватель может или не хочет перенаправляться на другую страницу, что может привести к неудовлетворенности пользователей или вызвать обеспокоенность по поводу безопасности.

Альтернативы

Для обновления

Альтернативный способ состоит в создании устройства взаимодействия, такие как кнопка, чтобы позволить пользователю выбрать, когда для обновления контента. Другой вариант - использовать технику Ajax для обновления (части) веб-сайта без необходимости полного обновления страницы, но для этого также потребуется, чтобы пользователь включил JavaScript в своем браузере.

Если вы на самом деле не нужны обновления страницы, я предлагаю вам использовать setTimeout яваскрипт функции, как уже упоминались в другом ответе (за исключением использования его, чтобы вызвать щелчок, не перезагрузите страницу), так как обновление страницы является большая вещь, чтобы сделать что-то маленькое (если щелчок делает что-то маленькое, что я предполагаю, что это так).

+0

meta refresh в этом контексте * Greasemonkey *. Не уверен, что даже при инъецировании он будет надежно проверяться. –

+0

Извините, я думал, что это всего лишь фреймворк или что-то в этом роде, не знал, что это надстройка для Firefox, и подумал о какой бы то ни было структуре или что-то в этом роде, возможно, обновление мета может быть добавлено или, по крайней мере, другие комментарии будут быть полезным. Тем не менее, обновление страницы каждые несколько секунд, чтобы вызвать щелчок мыши, может быть плохой идеей (я сомневаюсь, что на этом сайте он запретит пользователю, но это тоже может произойти) – Bikonja

1

Вы можете использовать функцию SetTimeout с window.location перезаряжания, как это:

$(document).ready(function(){ 
setTimeout(function(){ 
    window.location.reload(); 
}, 2000); 
}); 

Вот скрипка из рабочего примера: jsFiddle

Смежные вопросы