2013-04-30 2 views
0

Я загружаю данные из онлайн-базы данных, используя плагин imacros для firefox. Он отлично работает, за исключением случаев, когда страница не работает. Я перешел на загрузку очень маленьких фрагментов данных, так как веб-сайт время от времени происходит гораздо реже, но он все же время от времени.Проблема с скриптом greasemonkey для обновления страницы

Проблема заключается в том, что нет каких-либо кодов для операторов, непосредственно связанных с макросом imacros, поэтому я хотел иметь скрипт greasemonkey, который будет работать вместе с ним, который обновит страницу, если это произойдет. Сайт только раз в одном месте для меня, и когда он делает это показывает следующее: не может открыть файл

Я никогда не узнал, Java или JavaScript, и все мои программирования опыт сделок с численными методами, но я «Мы собирали код и адаптировали его, чтобы попытаться решить мою проблему.

Ниже мой базовый код:

var RefreshTime = '20'; 
var str1 = document.body.innerHTML 
var str2 = "can't open file" 

if (str1.search(str2) > 0) { 
    if (StRefTime > 0) setTimeout("location.reload(true);",RefreshTime*1000); 
} 

Поскольку браузер я бегу это в настоящее время используется исключительно для этого сценария я просто @include *

В основном то, что это означает чтобы обновить страницу каждые 20 секунд, так как «не удается открыть файл» находится на веб-странице. Это отлично работает на других сайтах, когда я его тестирую, но не работает на веб-сайте, в котором я нуждаюсь. Возможно, стоит отметить, что когда я обновляюсь, firefox просит меня подтвердить повторные почтовые данные, но у imacros есть функция, которую я тестировал и работает на этом сайте, чтобы автоматически подтверждать, когда отображается диалог.

После некоторого чтения я обнаружил, что другие люди сталкиваются с подобными проблемами, и я думаю, что корень причины заключается в том, что если страница получена через AJAX, то greasemonkey пропускает ее.

Чтобы решить эту проблему, я попытался реализовать предлагаемые решения для этих людей, но я не увенчался успехом. Например, я пытался ставить код я перечислил выше, в решение данного здесь: Run Greasemonkey script on the same page, multiple times?, например

var RefreshTime = '20'; 
var str1 = document.body.innerHTML 
var str2 = "can't open file" 

function highlightGoodComments (jNode) { 

    //***** YOUR CODE HERE ***** 

    if (/str2/i.test (jNode.text())) { 

     if (str1.search(str2) > 0) { 
      if (RefreshTime > 0) setTimeout("location.reload(true);",RefreshTime*1000); 
     } 

    } 

Но это не сработало, и я попробовал пару вариантов его (например, избавиться от str2 и просто положить «открытый файл» и тому подобное), и я также пробовал и не смог выполнить следующую работу https://gist.github.com/BrockA/2625891. Я также попытался обернуть весь свой исходный код в цикле setInterval с надеждой, что он будет просто постоянно проверять «невозможно открыть файл» даже без загрузки страницы, но это тоже не сработало.

К сожалению, веб-сайт, на котором я запущен мой скрипт, скрыт за платной машиной, и мне сложно проверить мой код, так как он несколько раз случайен, поэтому нет возможности проверить, работает ли мой код за пределами ожидающего долгого времени и посмотреть, не получилось ли это. Я ничего не знаю об AJAX, поэтому я не уверен, как подтвердить, что это то, что происходит, но я по-прежнему считаю, что это так, потому что моя проблема казалась похожей на других людей - и когда я включаю этот макрос, это, кажется, мешает другие части веб-сайта, но не те части, над которыми работает мой скрипт.

Я надеялся, что кто-то может мне помочь, так как я довольно застрял здесь и уже над головой. Даже если вы не можете помочь, имея какой-то сайт AJAX, где я мог бы проверить код, не дожидаясь нескольких часов, было бы полезно, если я попытаюсь понять это сам, если кто-нибудь знает об этом. Спасибо, что прочитали это, я действительно ценю любую помощь, которую может предложить любой.

ответ

0

Вопрос очень длинный, поэтому я не удосужился его прочитать.Поскольку я не использую GreasMonkey, я могу сказать вам решение iMacros.

Check if html element exists with iMacros and javascript

Вот модель, как встроенный JS iMacros сценарий и включают в себя, если п. Вы можете сделать тестовый макрос, который проверяет здесь: «Не удается открыть» веб-страницу.

Также вы можете попробовать использовать

SET !TIMEOUT_PAGE 120 

команду, чтобы увеличить время загрузки страницы до 120 секунд. Попробуйте некоторые из них, если это может помочь.

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