Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как помощи расширения браузера, читать html откр с 
:(
    Опции темы
Predator199
Дата 9.3.2014, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: нет
Всего: -4



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

Если ошибся разделом, прошу заранее простить.

Есть небольшие наработки.
manifest.json

Код

{
  "name": "JS Code Injection",
  "version": "1.0",
  "manifest_version": 2,
  "content_scripts": [
    {
      "matches": [ "http://forum.vingrad.ru/" ],
      "js": [ "/jquery.js", "/background.js" ],
      "run_at": "document_end"
    }
  ],
  "web_accessible_resources": [
    "/injected.js"
  ]
}



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();");
    }
);



injected1.js

Код

function injected_main() {
    alert('Injected!');
}



Ничего плохого для сайта не хочу сделать исключительно для себя, прочесть html. В качестве примера прописал данный форум.

Добавил расширение  в хром, далее перешел на http://forum.vingrad.ru/.
Как я понимаю, должен получить ответ. То есть сработать алерт, но этого не происходит. В чем ошибка?

В консоле браузера получаю следующее(прикрепил скрин). 
Что за ошибка на перво строчке. Не понятно, как правильно прописать?


Это сообщение отредактировал(а) Predator199 - 9.3.2014, 09:36

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  ава.jpg 28,19 Kb
PM MAIL   Вверх
Predator199
Дата 9.3.2014, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: нет
Всего: -4



Поковырялся, как я понял библиотеку jquery.js не подгружал.
Теперь ошибк 
Код

GET chrome-extension://gbgiedhkmhcghfbpklekopnpdhkmaeni/injected.js net::ERR_FILE_NOT_FOUND

Почему не находит, не понятно smile 
PM MAIL   Вверх
diadiavova
Дата 9.3.2014, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(Predator199 @  9.3.2014,  10:34 Найти цитируемый пост)
Как я понимаю, должен получить ответ. То есть сработать алерт, но этого не происходит. В чем ошибка?

Я не знаю архитектуру хрома, но вот какие проблемы тут вижу.

Цитата(Predator199 @  9.3.2014,  10:34 Найти цитируемый пост)
      "matches": [ "http://forum.vingrad.ru/" ],

Здесь ты видимо забыл звездочку поставить (ну или хотябы слеш в конце убрать если запускаешь только на главной странице).
Цитата

"http://forum.vingrad.ru*"

Относительно самого кода, не очень понятно, когда он у тебя выполняется: если к этому времени элемент body еще не существует, то добавлять ему атрибут нет смысла, а если уже загружен - то событие, на которое ты подписываешься уже видимо произошло. То есть сработать этот код как надо может только в случае, если выполняется он когда элемент уже создан, но еще не загружен.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Predator199
Дата 9.3.2014, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: нет
Всего: -4



Получилось, ура. Не подскажете . К примеру есть блок, элемент. В нем прописано style="left...bagraund и тд". Как узнать есть ли к примеру у данного элемента, стиль или переменная(не знаю как правильно назвать). bagraund
PM MAIL   Вверх
diadiavova
Дата 9.3.2014, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142





--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Predator199
Дата 9.3.2014, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: нет
Всего: -4




Спс. Но вот  я больше предпочитаю квери.

Попытался так 
Код

$('body').style.background()
, не выходит=(
PM MAIL   Вверх
diadiavova
Дата 9.3.2014, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(Predator199 @  9.3.2014,  20:22 Найти цитируемый пост)
 Но вот  я больше предпочитаю квери.

Ну так надо курить документацию по ней
http://jquery-docs.ru/css/css/#overview


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Predator199
Дата 10.3.2014, 04:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: нет
Всего: -4



Можно последний вопрос...

Код

$("#an").click(function () {
 alert("кляц");
        });



Кляцаем на блок с id=an.??


Сто та не удается этого сделать....

Это сообщение отредактировал(а) Predator199 - 10.3.2014, 06:00
PM MAIL   Вверх
vommer
Дата 10.3.2014, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 11.2.2014

Репутация: нет
Всего: нет



Код

$(document).ready(function() {

$("#ap").click(function () {
 alert("кляц");
        });
    
});

PM MAIL   Вверх
Predator199
Дата 10.3.2014, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: нет
Всего: -4



Цитата(vommer @ 10.3.2014,  09:24)
Код

$(document).ready(function() {

$("#ap").click(function () {
 alert("кляц");
        });
    
});

Неа... Все равно не переходит. Даже алерт не срабатывает. В консоле никаких ошибок, библиотека квери подгружина.

Не понимаю, что такое... Вроде бы все верно, а не работает.

Добавлено через 4 минуты и 14 секунд
Подскажите решение данной проблемы, в чем может быть ошибка?
PM MAIL   Вверх
diadiavova
Дата 10.3.2014, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(Predator199 @  10.3.2014,  11:42 Найти цитируемый пост)
в чем может быть ошибка? 

В сущности я написал ответ на этот вопрос в первом посте. Разберись, когда именно выполняется твой код и в каком состоянии в этот момент находится документ. В расширениях хрома используются разные типы скриптов, ты ровным счетом ничего не написал о том, где именно ты пишешь этот код. Если это background script, то видимо надо подписываться на события вкладок.
Код

chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
  if (changeInfo.status == 'complete' && tab.active) {

   // здесь код

  }
})
 Если это контент скрипт, то код видимо надо либо напрямую выполнять, либо подписываться на события окна например.
Код

window.addEventListener("load", function()
{
    //Здесь код
}, false);
В любом случае изучай документацию по хрому и пользуйся гуглом, там все легко находится, это не такой вопрос, ответ на который долго искать придется.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Predator199
Дата 10.3.2014, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: нет
Всего: -4



Цитата(diadiavova @ 10.3.2014,  12:13)
Цитата(Predator199 @  10.3.2014,  11:42 Найти цитируемый пост)
в чем может быть ошибка? 

В сущности я написал ответ на этот вопрос в первом посте. Разберись, когда именно выполняется твой код и в каком состоянии в этот момент находится документ. В расширениях хрома используются разные типы скриптов, ты ровным счетом ничего не написал о том, где именно ты пишешь этот код. Если это background script, то видимо надо подписываться на события вкладок.
Код

chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
  if (changeInfo.status == 'complete' && tab.active) {

   // здесь код

  }
})
 Если это контент скрипт, то код видимо надо либо напрямую выполнять, либо подписываться на события окна например.
Код

window.addEventListener("load", function()
{
    //Здесь код
}, false);
В любом случае изучай документацию по хрому и пользуйся гуглом, там все легко находится, это не такой вопрос, ответ на который долго искать придется.

Я пожалуй должен был создать новую тему.
Это все работает, работает js на страницах. 

Просто мне необходимо через js, кляцнуть по ссылке. Для того, чтобы перейти по ней. А с гуглом та я уже давненько разобрался.

Не подскажите как на квери или на яваскрипте. Кляцнуть по ссылке, перейти по ней и в тоже время не трогать мышку.

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

Это сообщение отредактировал(а) Predator199 - 10.3.2014, 12:28
PM MAIL   Вверх
diadiavova
Дата 10.3.2014, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(Predator199 @  10.3.2014,  13:25 Найти цитируемый пост)
Кляцнуть по ссылке, перейти по ней и в тоже время не трогать мышку.

Код

document.getElementById("ap").click();




--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0524 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.