Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   Greasemonkey и редактирование запущенного JS скрипта на лету (https://javascript.ru/forum/css-html-firefox-mizilla/54611-greasemonkey-i-redaktirovanie-zapushhennogo-js-skripta-na-letu.html)

mmmaks2004 24.03.2015 18:34

Greasemonkey и редактирование запущенного JS скрипта на лету
 
Возможно ли такое сделать:
При загрузке веб-браузером странички, в ней запускается таймер, который отсчитывает определенное время на выполнение задания, а потом автоматом отсылает форму на сервер.
Можно ли налету изменить (продлить) время работы таймера и как это лучше сделать?
P.s. Скрипт подгружается с внешнего файла.

newuser1001 24.03.2015 18:47

А при чем тут greasmonkey? Тут все упирается в создание таймера с продлением, насколько я понял. В чем проблема то? По определенному событию продляйте таймер, и все.

mmmaks2004 24.03.2015 19:36

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

mmmaks2004 26.03.2015 13:47

unsafeWindow, насколько я понял, не видит переменных запущенных скриптов, не определенных именно на странице?

mmmaks2004 28.03.2015 00:25

Может кто глянет и скажет, можно ли продлить жизнь формы?
Фалик со скриптами тут

Aetae 28.03.2015 12:05

var i = unsafeWindow.setTimeout(function(){}, 1);
while(i--) unsafeWindow.clearTimeout(i);
Отключит все таймауты. Форму потом вручную отправите.

mmmaks2004 30.03.2015 11:23

К сожалению, это не отключает скрипты, запущенные с внешнего файла
(типа таких:
<script src="MegaTypers/work.js"></script>
)

mmmaks2004 02.04.2015 10:14

Подскажите, как достучаться к переменной seconds на странице, которая запускается во фрейме?

<iframe src="/a.htm" style="width:100%; height:500px;" scrolling="no" marginheight="0" marginwidth="0" frameborder="0"></iframe>

unsafeWindow.seconds пишет что переменная не определена.

Переменная определяется так:
<script language="javascript">
        document.getElementById('value').focus();
        var seconds = 30;
        function display_countdown()
        {
            if( seconds < 0 ) {
                seconds = 0;
            }
            document.getElementById('countdown').innerHTML = 'Countdown:&nbsp;<strong>' + seconds + '</strong>';
            seconds--;
            setTimeout( "display_countdown()", 1000 );
        }
        display_countdown();

Casufi 08.04.2015 09:21

Цитата:

Сообщение от mmmaks2004 (Сообщение 364570)
Подскажите, как достучаться к переменной seconds на странице, которая запускается во фрейме?

Дэвид Флэнаган "JavaScript. Подробное руководство" 6-е издание раздел 14.8.2 Если страница во фрейме открыта с другого домена, то переменные с нее не доступны родительской странице.


Часовой пояс GMT +3, время: 17:26.