Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.10.2014, 20:57
Интересующийся
Отправить личное сообщение для AlexVong Посмотреть профиль Найти все сообщения от AlexVong
 
Регистрация: 28.12.2013
Сообщений: 21

userscripts "История фрейма"
Добрый вечер!
Возможно ли в userscripts реализовать мониторинг ифрейма на определенном сайте, а именно сохранять в log файл адреса ифрейма при каждом его обновлении или через определенный промежуток времени?
Ответить с цитированием
  #2 (permalink)  
Старый 14.10.2014, 21:04
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

А ты попробуй.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 14.10.2014, 21:11
Интересующийся
Отправить личное сообщение для AlexVong Посмотреть профиль Найти все сообщения от AlexVong
 
Регистрация: 28.12.2013
Сообщений: 21

danik.js,
пжлста можно примерчик, userscripts еще только пытаюсь осваивать ...
Ответить с цитированием
  #4 (permalink)  
Старый 14.10.2014, 21:18
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

А ты пока просто скрипт сделай. Не "user"
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 14.10.2014, 21:35
Интересующийся
Отправить личное сообщение для AlexVong Посмотреть профиль Найти все сообщения от AlexVong
 
Регистрация: 28.12.2013
Сообщений: 21

danik.js,
Пойду учить мат.часть... т.к просто скрипты тоже только осваиваю...
Ответить с цитированием
  #6 (permalink)  
Старый 15.10.2014, 20:43
Интересующийся
Отправить личное сообщение для AlexVong Посмотреть профиль Найти все сообщения от AlexVong
 
Регистрация: 28.12.2013
Сообщений: 21

Прошу помощи ... получилось получать текущий адрес ифрейма и записывать его в массив, скрипт работает постоянно в цикле и проверяет идентичность текущего адреса ифрейма и последней строки массива, и если они не равны - записывать новый адрес в конец массива и т.д.
Может возможно обойтись без цикла? Есть какая нибудь возможность отлавливать обновление ифрейма и только тогда получать его адрес?
Ответить с цитированием
  #7 (permalink)  
Старый 16.10.2014, 04:40
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Под циклом ты setInterval подразумеваешь? Вот по событию:
<iframe src="http://javascript.ru" frameborder="0"></iframe>
<script>
    var frame = document.querySelector('iframe');
    frame.onload = function(e) {
        alert('Фрейм загружен');
    };
</script>
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 18.10.2014, 10:30
Интересующийся
Отправить личное сообщение для AlexVong Посмотреть профиль Найти все сообщения от AlexVong
 
Регистрация: 28.12.2013
Сообщений: 21

Вот набросал userscript, который запускается на определенном сайте и отслеживает на нем обновление ифрейма и записывает адреса новых ифреймов в массив. Но не могу побороть такую проблему! ... надо чтобы адреса добавлялись в массив с каждым вызовом функции при обновлении ифрейма, а функция создает массив заново?
// ==UserScript==
// @name          MainJS
// @description   Iframe
// @include       [url]https://web-base.*[/url]
// ==/UserScript==
//alert('test');
//var urr;
var arr = [];
arr.push('https://web-base/index/');
var iframe = document.getElementById('BaseFrame');
var urr = iframe.contentWindow.location;

function refresh( ) {
var lastItem = arr[arr.length-1];
if (urr !== lastItem) {
arr.push(urr);
alert(lastItem);
}
else {
alert(arr);
}
}
if (iframe.attachEvent) iframe.attachEvent('onload', refresh);
else iframe.attachEvent('load', refresh, false);
Ответить с цитированием
  #9 (permalink)  
Старый 18.10.2014, 10:33
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от AlexVong
а функция создает массив заново?
С чего ты это взял?
Сообщение от AlexVong
if (iframe.attachEvent) iframe.attachEvent('onload', refresh);
else iframe.attachEvent('load', refresh, false);
Во втором случае должно быть iframe.addEventListener

Ты че, в IE чтоли тестишь ?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #10 (permalink)  
Старый 18.10.2014, 11:05
Интересующийся
Отправить личное сообщение для AlexVong Посмотреть профиль Найти все сообщения от AlexVong
 
Регистрация: 28.12.2013
Сообщений: 21

в IE .... сайт в локальной сети заточен под IE8. При каждом обновлении фрейма алерт выводит на экран массив в котором только два адреса - первый который "https://web-base/index/" и второй адрес полученный от фрейма, а надо чтобы адреса накапливались в массиве.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск