2014-11-27 4 views
0

Может кто-нибудь помочь мне Петля следующую функцию и сделать его запустить через каждые 5 секунд:Как заставить greasemonkey запускать specfic javascript: function?

javascript:listAction(
    'editObjectSingle','inforUpdateAction','divEditObjectSingle','formEditObjectSingle' 
); 

для конкретного веб-сайта google.com?

Я еще новичок в этом и не знает, как писать это

// ==UserScript== 
// @name   Google 
// @description Google 
// @include  Google.com 
// ==/UserScript== 

// initiate 

Это то, что я до сих пор не знает, как добавить другие вещи. Благодаря!

+1

Возможно, мне что-то не хватает, но что это имеет отношение к Java? –

+0

Хм, без ответа ....? Я взял на себя смелость удалить тэг [tag: java], но, пожалуйста, дайте мне знать, если я сделал это по ошибке. Вы знаете, конечно, что Java и Javascript - это два совершенно разных языка программирования, которые так же тесно связаны, как ветчина, с гамбургером, что если вы неправильно пометите свой вопрос, вы не получите правильных экспертов для его обзора, и это может повредить ваши шансы получить достойную помощь. Поскольку я абсолютно ничего не знаю о Javascript, это все, что я могу сделать для вас, кроме как пожелать вам здоровья и надеюсь, что вы получите достойный ответ в ближайшее время. –

+1

@HovercraftFullOfEels, для справок в будущем, [java] почти никогда не будет применяться к вопросам Greasemonkey или userscript. –

ответ

1

См также:


Для the default @grant setting (@grant none), вызов JavaScript разметке страницы является относительно простым.

Если, и только если, listAction глобальная функция на странице (это вероятно), то вы можете назвать это так:

// ==UserScript== 
// @name  Google function spammer 
// @match  *://*.google.com/* 
// @description Spam the snot out of the listAction function on Google. 
// @grant  none 
// ==/UserScript== 

var updateTimer = setInterval (function() { 
     //-- The function will not always exist (right away). 
     if (typeof listAction === "function") { 
      listAction (
       'editObjectSingle', 'inforUpdateAction', 
       'divEditObjectSingle', 'formEditObjectSingle' 
      ); 
     } 
    }, 
    5 * 1000 // 5 seconds 
); 

Обратите внимание, что the @include directive в вопросе выключен и замена @match, выше.

Также обратите внимание, что если функция вызывается из обработчика click и т. Д., Она может ожидать/требует контекста (this). В этом случае вызов этого требует больше информации, чем присутствует в этом вопросе, и, вероятно, может быть достигнут programmatically clicking on the control.

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