Полезная информация

Общайтесь со знакомыми и друзьями в нашем сообществе в Facebook.

№102-11-2014 18:59:00

fireday2
Участник
 
Группа: Members
Зарегистрирован: 10-09-2014
Сообщений: 35
UA: Chrome 38.0

Удаление скриптов из страницы

нужно получить список подгружаемых на странице скриптов

Выделить код

Код:

<script type='text/javascript' src=' ссылка на скрипт '></script>

до конца загрузки страницы (до начала работы скриптов)
и удалить некоторые из них
Как это правильно сделать?

мои мысли:
Внедряю в страницу свой скрипт, в который передаю список скриптов, которые нужно удалить
main.js

Выделить код

Код:

tabs.on('ready', function(tab) {
    var includeUrl = tab.url;
    if (includeUrl.indexOf('/') > 0)
    {
        worker = tab.attach({
            contentScriptFile: self.data.url("remove_scripts.js")
        });
        worker.port.emit('SubstitutionList', SubstitutionList, SubstitutionListSize);
    }
});

remove_scripts.js

Выделить код

Код:

self.port.once('SubstitutionList', function(SubstitutionList, SubstitutionListSize){
переменная page, в которую записывается конечный код страницы
цикл с предусловием пока поиск в странице '<script' не даст -1
  а=поиск в странице '<script'
  б=поиск начиная с места нахождения 'src='
  в=поиск до '></script>'
  д=промежуток (от б до в) сравнивается с передаваемым списком
  если нет совпадений - копируем все в page, если есть совпадение, копируем вырезая скрипт
конец цикла
присваиваю коду страницы значение = page
});

Правильно ли?

Как работает Adblock и ему подобные плагины, удаляющие рекламу?

Отредактировано fireday2 (02-11-2014 19:38:33)

Отсутствует

 

№223-11-2014 12:51:21

HaGEN
Забанен
 
Группа: Members
Зарегистрирован: 04-07-2013
Сообщений: 155
UA: Palemoon 24.0

Re: Удаление скриптов из страницы

Очень хорошее и правильное дело задумал, только вот помочь не могу ибо не силен. Может тока подсказать, и то на примере другого бравзера.
адблок-и просто скрывают блоки с помощью CSS , inline-scripts они не трогают и всячески противятся(разрабы) этому, хотя их просят за то.
Есть кусок кода для Опера который делает именно это, вырезает инлайн скрипт определенный. недавно поковырялся, но не смог понять как сделать это в FF. В Опера работающий код блокирующий исполнение скрипта такой:

скрытый текст

Выделить код

Код:

// ==UserScript==
(function () {
if (false || (new RegExp("^https?:\\/\\/[www.]*donbassforum.net\\/[^i]?.*$")).test(document.location.href))

window.opera.addEventListener('BeforeScript', function(e) {

    if(e.element.text.indexOf('window.document.getElementById("caa0")')!=-1) 

        e.preventDefault();

    }, false);

})();


для форума где есть гаццкий inline-script  тут в теме писал подробно.
ну нешмагла я, нешмагла...

Отсутствует

 

№323-11-2014 17:59:34

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2249
UA: Firefox 31.0

Re: Удаление скриптов из страницы

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]