Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.01.2017, 10:24
Новичок на форуме
Отправить личное сообщение для voicemage Посмотреть профиль Найти все сообщения от voicemage
 
Регистрация: 14.01.2017
Сообщений: 3

Расширение для Chrome
Здравствуйте, господа и дамы. Третий день мучаюсь, создавая расширение парсер страницы. Надеюсь вы мне сможете мне помочь.

Суть в том, что я подключаю JQuery, но он не видит текст страницы.
В данном случае строчка var test = $('.mydiv').text(); выполненная из скрипта не приводит ни к чему кроме пустой строки. При этом в консоли когда пишу те же строчки, то всё нормально. Подскажите пожалуйста, что я делаю не так.

В туториалах написано, что скрипты content_scripts прописанные в manifest.json имеют доступ к DOM. И по идее то должно работать.

Можно конечно получить URL страницы из строки браузера, но это помоему костыли, и в этом случае придется еще раз загружать страницу.


$(document).ready(function () {
	
	
	console.log("parser_ready");
	var test = $('.mydiv').text();
	console.log("var test");
	console.log(test);
	console.log("log test");
	$('#wrapper').html("test");
});
Ответить с цитированием
  #2 (permalink)  
Старый 14.01.2017, 10:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от voicemage
При этом в консоли когда пишу те же строчки, то всё нормально
значит элемента ещё нет, когда работает скрипт ... проверяли?
console.log( $('.mydiv').length);
Ответить с цитированием
  #3 (permalink)  
Старый 14.01.2017, 11:26
Новичок на форуме
Отправить личное сообщение для voicemage Посмотреть профиль Найти все сообщения от voicemage
 
Регистрация: 14.01.2017
Сообщений: 3

Скрипт работает когда вся страница загрузится. Там в manifest Указано что
"content_scripts": 
	[
	    {
		"matches": ["*://*/*"],
		"js": ["js/jquery-3.1.1.min.js","js/parser.js"],
		"run_at" : "document_end"
	    }


Тоесть чтобы срабатывал вконце. Когда уже всё загрузилось.

насчет legth показывает что длинна 0. Но если в консоли вводить то все как надо. Предлагаете таймером подождать?

А в скрипте там
$(document).ready(function () {
оно же так и говорит что на реди должно работать только.

Последний раз редактировалось voicemage, 14.01.2017 в 11:29. Причина: Добавил
Ответить с цитированием
  #4 (permalink)  
Старый 14.01.2017, 11:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от voicemage
оно же так и говорит что на реди должно
попробуйте на
$(window).load(function () {
Ответить с цитированием
  #5 (permalink)  
Старый 14.01.2017, 11:48
Новичок на форуме
Отправить личное сообщение для voicemage Посмотреть профиль Найти все сообщения от voicemage
 
Регистрация: 14.01.2017
Сообщений: 3

Оттянул на 2 секунды таймаутом, всё стало работать. Спасибо за подсказку.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть сайт https + мое расширение Chrome + Звук Signal Events/DOM/Window 2 12.05.2016 20:12
tampermonkey для chrome valford@yandex.ru Javascript под браузер 0 17.12.2013 19:57
расширение chrome как userjs xhugo Общие вопросы Javascript 4 01.02.2013 23:43
Как из javascript'а сделать расширение для FF? nule Общие вопросы Javascript 0 07.11.2011 11:58
Как указать title при открытии окна через window.open для chrome milvic Opera, Safari и др. 4 15.01.2011 15:18