Простой bookmarklet как средство очистки содержимого веб-страницы от нежелательных элементов

в 18:37, , рубрики: bookmarklets, javascript, Веб-разработка, метки: ,

JavaScrip использую достаточно давно, букмарклеты рассматривал когда-то в познавательных целях, но чтобы использовать,- необходимости не было.
Мысль о написании букмарклета пришла спонтанно: проверяя почту на одном из онлайн серверов ощутил явный дискомфорт, вызванный навязчивым (пёстрым и большим) флэш-банером, и это меня несколько озадачило, так как реклама встречается сплошь и рядом, временами некачественно сделанная реклама досаждает, но не так что бы очень (скорее воспринимается как окружающий фон). Первая мысль была найти дополнение для браузера (типа Flashblock), и уже было собрался устанавливать, но по разным причинам (использую разные браузеры на нескольких компьютерах, нежелание настраивать и сопровождать и т.п., да и далеко не все флэш-объекты провоцируют на то, чтобы их удалили) особого энтузиазма по поводу установки подобных дополнений не испытывал, но тут вспомнил про букмарклеты и написал простой код, позволивший по мере необходимости легко справляться с очисткой страницы:


(function(tagNameList){for(var j = 0, m = tagNameList.length; j < m; j++){var obj = document.getElementsByTagName(tagNameList[j]); for(var i = 0, n=obj.length; i < n ; i++) {obj[i].style.display = 'none'; }};})(['object','embed','iframe']);

Небольшой комментарий для начинающих:

Код встроен в анонимную функцию см. http://en.wikipedia.org/wiki/Anonymous_function#JavaScript

Действующие примеры для экспериментов с Anonymous_function:
http://ideone.com/DWtzx
http://ideone.com/BCZlR

В качестве аргумента анонимной функции передается массив имен тегов ('object','embed','iframe'), по которым ищутся соответствующие объекты в DOM HTML и найденные объекты превращаются в невидимые obj[i].style.display = 'none';… Изменяя содержимое данного списка, можно изменять состав объектов, к которым необходимо получить доступ.

Готовое решение представлено здесь:
http://jsfiddle.net/ySG6a/

Желающие больше узнать о букмарклетах, могут ознакомиться с обширной подборкой статей по данной теме на Хабре: http://habrahabr.ru/search/?q=bookmarklet

Автор: multiresearcher

* - обязательные к заполнению поля