Загрузка вкладки в фоновом режиме и извлечение из нее некоторой информации

#javascript #ajax #google-chrome-extension

#javascript #ajax #google-chrome-расширение

Вопрос:

Привет любителям расширений Chrome,

Есть ли какой-либо способ, которым мы можем прочитать информацию на веб-странице, открыв ее в фоновом режиме (т. Е. не открывая для нее отдельную вкладку).

Предположим, я нахожусь на сайте A, и у меня есть список URL-адресов (скажем, сайта B, C, D), перечисленных на сайте A. Я должен найти первый URL (в пределах B, C, D), содержащий определенный элемент с известным идентификатором тега. Итак, я должен линейно открывать URL-адреса и проверять наличие элемента на веб-странице. если в B есть требуемый элемент, я должен остановить итерацию или записать это.

Я не знаю, можно ли это сделать с помощью ajax. Нужна помощь. заранее спасибо. дайте мне знать, если что-то неясно.

Ответ №1:

Да, это можно сделать с помощью ajax. Фоновая страница не имеет междоменных ограничений (при условии, что вы объявляете соответствующие правила в манифесте), поэтому вы можете загрузить любой сайт через ajax, выполнить поиск (jQuery здесь был бы идеальным) и при необходимости отправить результаты обратно в скрипт содержимого.

Ajax-запрос в jQuery:

 $.ajax({
    url: "http://google.com",
    type: "GET",
    dataType: "html",
    error: function() {
        //error happened
    },
    success: function(html) {

        //"html" var contains full page source as string

        //you can search it using jQuery
        var el = $(html).find("#prm");
        if(el.length) {
            console.log("Element with id 'prm' exists");
        }


    }
});
  

Манифест, позволяющий отправлять ajax-запросы на все сайты:

 "permissions": [
    "http://*/*", "https://*/*"
],