Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Мониторинг переходов в iframe


Автор: Seryoga204 19.10.2014, 16:07
Добрый день!
Набросал userscript для IE, который запускается на определенном сайте и отслеживает на нем обновление ифрейма и записывает адреса новых ифреймов в массив. Но не могу побороть такую проблему! ... надо чтобы новые адреса добавлялись в массив с каждым вызовом функции при обновлении ифрейма, а функция создает массив заново, в котором только два адреса - 'https://web-base/index/' и адрес текущего фрейма.   

Код

// ==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);

Автор: Seryoga204 20.10.2014, 18:11
Бьюсь уже неделю.... Очень надо чтобы ссылки на фреймы собирались в массив с которым потом можно будет работать, но к сожалению с каждым запуском функции  refresh() создается новый массив. Прошу помощи... smile 

Автор: Aliance 24.10.2014, 10:09
сохраняйте массив в локал сторадж.

Автор: sQu1rr 24.10.2014, 13:44
Или кукисы, для кроссбраузерности

Автор: Aliance 27.10.2014, 08:41
Цитата(sQu1rr @  24.10.2014,  14:44 Найти цитируемый пост)
для кроссбраузерности 

http://caniuse.com/#feat=namevalue-storage 

Автор: Seryoga204 28.10.2014, 19:47
Спасибо!
Скрипт подправил, работает на ура ....
Но только не на всех машинах... Почему?
Сайт один и тот же, везде IE8, Win7, но на некоторых машинах не определяется фрейм document.getElementById('BaseFrame') - возвращает null. Какие настройки IE могут на это влиять?

Автор: Aliance 29.10.2014, 08:16
Цитата(Seryoga204 @  28.10.2014,  20:47 Найти цитируемый пост)
на некоторых машинах не определяется фрейм document.getElementById('BaseFrame') - возвращает null. Какие настройки IE могут на это влиять? 

выложите js-код и разметку на jsfiddle и тогда посмотрим

Автор: Seryoga204 29.10.2014, 15:23
Всем спасибо, проблема решилась включением режима совместимости...

Автор: sQu1rr 29.10.2014, 16:57
Рад что разобрались, не забывайте пометить вопрос как решенный smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)