Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   js+imacros нужна помощь новичку. (https://javascript.ru/forum/events/63991-js-imacros-nuzhna-pomoshh-novichku.html)

matrix27 13.07.2016 07:43

js+imacros нужна помощь новичку.
 
помогите поправить скрипт начинает работать и остнавливается на 10 строке и пишет такую ошибку
TypeError: dlinaMasiva[i] is undefined, line 10 (Error code: -991)
просьба помочь подправить что я не так сделал скрипт должен собирать ссылки на откр и кол больше 5000 чел и брать в масиив и выводить на дисплей помогите
var dlinaMasiva = content.document.getElementsByClassName('_pac').length
 var arrUrlTxt = []
for (i=0;i<dlinaMasiva;i++){
if (content.document.body.scrollHeight>window.innerHeight+content.document.documentElement.scrollTop==true){
	window.scrollTo(0,(content.document.documentElement.scrollHeight))
}
  var otkr = content.document.getElementsByClassName('_pac')[0].innerHTML.replace(/\&nbsp;/g, "")=='Общедоступная группа'
  var kolUhastn = content.document.getElementsByClassName('_pac')[0].innerHTML.replace(/\&nbsp;/g, "")=='5000участник'
if("otkr" >="kolUhastn"){
  var silkaHTML = dlinaMasiva[i].getElementsByClassName('_gll')[0].innerHTML; 
  var facebokUrlTxt = "https://www.facebook.com/"+(silkaHTML.substring(silkaHTML.indexof('<a href="')+10)).sprit('"')[0]
if(arrfacebookUrlTxt.indexof(facebookUrlTxt)==-1){(arrfacebookUrlTxt.push(facebookUrlTxt))}
iimDisplay("группа- "+ facebookUrlTxt+"\n"+ "длина массива- "+ content.document.getElementsByClassName('_gll').length+"\n"+"массив- "+arrfacebookUrlTxt )
}
}

Spass 16.07.2016 18:29

dlinaMasiva у тебя число, какой реакции ты от него ожидаешь написав dlinaMasiva[i]?

matrix27 17.07.2016 07:39

то есть dlinaMasiva[i] что надо число прописать?или в первой строке число?

Spass 17.07.2016 16:43

var dlinaMasiva = content.document.getElementsByClassName('_pac').[B]length[/B]


dlinaMasiva это количество элементов с классом '_pac' (т.е. просто число)

var silkaHTML = dlinaMasiva[i].getElementsByClassName('_gll')[0].innerHTML;


здесь ты к числу обращаешься как к массиву

matrix27 19.07.2016 15:06

js+imacros нужна помощь новичку.
 
привет но все равно не догоню почему он не делает сейчас пишет на10 ошибка TypeError: topik[i].getElementsByClassName(...)[0] is undefined, line 10 (Error code: -991) хотя ниже скрип вк и этот один в один только классы разные там все пашет тут не хера
вот как переделал код
var topik=content.document.getElementsByClassName('_42ef');
var dlinaMasiva = 5000;
 var arrfacebokUrlTxt = []
for (i=0;i<dlinaMasiva;i++){
 if (content.document.body.scrollHeight>window.innerHeight+content.document.documentElement.scrollTop==true){
	window.scrollTo(0,(content.document.documentElement.scrollHeight))
}
if (topik[i]==undefined){break}

var topikHTML = topik[i].getElementsByClassName('_pac')[0].innerHTML;
  var facebokUrlTxt = "https://www.facebook.com/"+(topikHTML.substring(topikHTML.indexof('<a href="')+10)).sprit('"')[0]
if(arrfacebookUrlTxt.indexof(facebookUrlTxt)==-1){(arrfacebookUrlTxt.push(facebookUrlTxt))}
iimDisplay("группа- "+ facebookUrlTxt+"\n"+ "длина массива- "+ content.document.getElementsByClassName('_gll').length+"\n"+"массив- "+arrfacebookUrlTxt )
}
помоги нубу:help:
вот код вк
var topik=content.document.getElementsByClassName('info fl_l')
 var naydeno=parseInt(content.document.getElementsByClassName('summary')[0].textContent.replace(/\s+/g, '').substring(7))//сколько найдено сообществ
 var arrVkUrlTxt=[]
 for (i=0;i<naydeno;i++){
 if (content.document.body.scrollHeight>window.innerHeight+content.document.documentElement.scrollTop==true){
	window.scrollTo(0,(content.document.documentElement.scrollHeight))
}
if (topik[i]==undefined){break}
 var topikHTML = topik[i].getElementsByClassName('labeled')[0].innerHTML // топик HTML
 var VkUrlTxt ='https://vk.com/'+ (topikHTML.substring(topikHTML.indexOf('<a href="/')+10)).split('"')[0]// ссылка 
 if(arrVkUrlTxt.indexOf(VkUrlTxt)==-1){arrVkUrlTxt.push(VkUrlTxt)}// если нет этой ссылки, добавляем
iimDisplay("группа- "+ VkUrlTxt+"\n"+ "длина массива- "+ arrVkUrlTxt.length+"\n"+"массив- "+ arrVkUrlTxt)
 }

Spass 19.07.2016 15:35

Попробуй так

var topik=content.document.getElementsByClassName('_42ef');
var dlinaMasiva = 5000;
 var arrfacebokUrlTxt = []
for (i=0;i<dlinaMasiva;i++){
 if (content.document.body.scrollHeight>window.innerHeight+content.document.documentElement.scrollTop==true){
    window.scrollTo(0,(content.document.documentElement.scrollHeight))
}
if (topik[i]!=undefined){ 
var topikHTML = topik[i].getElementsByClassName('_pac')[0].innerHTML;
  var facebokUrlTxt = "https://www.facebook.com/"+(topikHTML.substring(topikHTML.indexof('<a href="')+10)).sprit('"')[0]
if(arrfacebookUrlTxt.indexof(facebookUrlTxt)==-1){(arrfacebookUrlTxt.push(facebookUrlTxt))}
iimDisplay("группа- "+ facebookUrlTxt+"\n"+ "длина массива- "+ content.document.getElementsByClassName('_gll').length+"\n"+"массив- "+arrfacebookUrlTxt )
} else { break; }
}

matrix27 22.07.2016 08:06

тоже вот такую ошибку выдает TypeError: topik[i].getElementsByClassName(...)[0] is undefined, line 10 (Error code: -991)
че надо не догоняю:-?

Spass 22.07.2016 10:53

topik[i].getElementsByClassName('_pac')[0].innerHTML;

У тебя в выборку ничего не падает, можно конечно проверять так
if (topik[i].getElementsByClassName('_pac').lenght) {
var topikHTML = ...
...
}


Но возможно проблема в том что у тебя получается неправильная структура (т.е. в _42ef нету блоков _pac)

matrix27 22.07.2016 13:08

js+imacros нужна помощь новичку.
 
вот ссылка на скрин глянь если можешь я там вроде подробно обресовал
http://prntscr.com/bw2dic

matrix27 22.07.2016 13:34

Цитата:

Сообщение от Spass (Сообщение 422993)
topik[i].getElementsByClassName('_pac')[0].innerHTML;

У тебя в выборку ничего не падает, можно конечно проверять так
if (topik[i].getElementsByClassName('_pac').lenght) {
var topikHTML = ...
...
}


Но возможно проблема в том что у тебя получается неправильная структура (т.е. в _42ef нету блоков _pac)

вот ссылка на скрин глянь если можешь я там вроде подробно обресовал
http://prntscr.com/bw2dic


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