Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 17.10.2016, 08:26
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

Блин, я думаю, чего у меня null всё время показывает querySelector(с любым тегом).
Проверил:
alert(document.documentElement.innerHTML)


Оказывается document берёт не из той страницы, которая открылась, а из страницы, на которой подключен скрипт(я её не подключал, видимо хром сам).

<head></head><body><script src="background.js"></script></body>
Ответить с цитированием
  #12 (permalink)  
Старый 17.10.2016, 09:09
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Артист, html - это текст, но ковырять его самому не надо. Ты же не станешь ковырять файл екзеля ради редактирования таблицы. Ты напишешь скрипт работающий с документом как с объектом. Для браузера хтмл - такой же документ и браузер делает из него объект. Поскольку документ описан в иерархических сущностях хтмл, то и объект представляет из себя дерево. Вот и лазай по нему, или лазий.

Почитай документацию уже.
Ответить с цитированием
  #13 (permalink)  
Старый 17.10.2016, 13:12
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

Да я полазил бы - не лазиется...
Я в фоновом скрипте отлавливаю когда в браузере страница открылась и все элементы прогружены.
А document не видит эту страницу, видит только страницу с которой подключен скрипт...

Смотрел исходники ABP Block'a, он же как - то убирает со страницы элементы.
И ничего не нашел.
Вернее нашел, но не работает.
Пробовал так:
alert(window.document.documentElement.innerHTML)
alert(this.window.document.documentElement.innerHTML)


Ещё находил там(в исходниках), event.tabId , смотрел там номер возвращает, может от него надо получать...
Ответить с цитированием
  #14 (permalink)  
Старый 17.10.2016, 13:16
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

Сообщение от warren buffet Посмотреть сообщение
Почитай документацию уже.
Читал, сто раз уже, гуглил... Ничего не понятно(даже с переводом).

Вот тут про webNavigation

И там вообще ничего нет, как получить что - то со страницы...
Ответить с цитированием
  #15 (permalink)  
Старый 17.10.2016, 18:34
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Артист, ты юзерский скрипт что ли пишешь, или какой-то поддон?

Поставь на FF - Greasemonkey и отстань от этого тупого хрома навсегда.
Ответить с цитированием
  #16 (permalink)  
Старый 17.10.2016, 18:37
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от Артист
Вот тут про webNavigation
Это параллельная вселенная, ты уверен, что взял правильный курс? Опиши задачу на русском языке, может и делать ничего не надо, все может быть уже сделано.
Ответить с цитированием
  #17 (permalink)  
Старый 17.10.2016, 20:49
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

Ну, есть игра одна браузерная, мне надоело что невозможно что - то продать в игре, т.к. 7к игроков онлайна.
Ну я накатал приложение которое всё автоматом продаёт, и теперь хочу сделать чтобы не по кнопке щелкать для этого дела, а просто поставил галочку, и пускай он ходит по карте да торгует.
Думал прямо на странице сделать 2 кнопки(или чекбоксы)...

Ну и вот нужно отловить, когда перс пришёл...

Сообщение от warren buffet Посмотреть сообщение
Поставь на FF - Greasemonkey и отстань от этого тупого хрома навсегда.
Да это всё переделывать нужно...Тем более я чисто хромом пользуюсь, проще к нему делать напрямую...

Последний раз редактировалось Артист, 17.10.2016 в 20:58.
Ответить с цитированием
  #18 (permalink)  
Старый 17.10.2016, 21:17
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

Вот тут описывается как это сделать, а я не понимаю, т.к. вообще не знаю JS.

Внедрение Javascript-кода в страницу через Chrome Extension

Цитата:
background.js

$.get(chrome.extension.getURL('/injected.js'), 
	function(data) {
		var script = document.createElement("script");
		script.setAttribute("type", "text/javascript");
		script.innerHTML = data;
		document.getElementsByTagName("head")[0].appendChild(script);
		document.getElementsByTagName("body")[0].setAttribute("onLoad", "injected_main();");
	}
);
  1. Мы используем стандартную функцию Chrome Extension API chrome.extension.getURL(), которая возвращает путь, локальный для расширения.
  2. Далее мы запрашиваем данный файл через ajax и после успешного получения создаем новый элемент в основной странице (Благодаря Shared DOM мы можем манипулировать элементами страницы без лишних усилий)
  3. Последним пунктом мы устанавливаем функцию, которая будет вызвана после загрузки страницы (функция injected_main() описана в файле injected.js)
1 - вообще не понял, что возвращает и от куда?
Ответить с цитированием
  #19 (permalink)  
Старый 17.10.2016, 21:28
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Ну так парсить не надо ничего. И вообще ты не ту рубрику полез, поэтому тебя и не понимают. Есть раздел для юзерских скриптов - который под браузер. Тебе нужен спец по такой писанине для хрома.

В упомянутом GM юзерский скрипт ничем от обычного не отличается. Почему в хроме какие-то дебильные заморочки, я не понял. В общем если дело ограничивается работой с документом, то в ГМ пишут вот так

var elem=document.querySelector('.foo');

и все работает, в точности как если бы оно было в скрипте загруженным со страницей.

А вот когда тебе захочется забраться в кишки этих самых скриптов, там есть небольшой геморрой с интерфейсом UnsafeWindow, но через него почти все можно получить по части кодов страницы - переменные, функции, писать, запускать и все такое.

И только в редких случаях, когда не получается добраться нормально, тогда приходится что-то парсить. Но такое ну очень редко бывает.
Ответить с цитированием
  #20 (permalink)  
Старый 17.10.2016, 21:31
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от Артист
1 - вообще не понял, что возвращает и от куда?
Нехилая там эпидерсия.

Какой нахер аякс? Скрипт для браузера хранится локально. Ты куда полез вообще?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заставить скрипт обновить свои знания о dom? l-liava-l Оффтопик 6 21.02.2013 16:21
Перевод на новую строку JS воспринимает как объект DOM Rig Events/DOM/Window 6 26.12.2011 20:08
как удалить элемент в DOM? czp Общие вопросы Javascript 11 17.12.2011 20:55
Как сохранить текущий DOM в html-страницу kukuyok Серверные языки и технологии 1 23.03.2011 20:27
Как узнать содержит ли DOM определенный элемент Ruslan Events/DOM/Window 8 12.03.2010 22:02