Как отключить фреймы в браузерах

8788
Danield

Я в настоящее время использую Chrome 27.

Просматривая параметры настроек ( Настройки → Конфиденциальность → Настройки контента ), я вижу, что могу отключить практически все ... кроме фреймов.

Есть ли простой способ сделать это? Это также возможно в IE и Firefox?

2
Зачем вам отключать фреймы? gronostaj 10 лет назад 0
Есть конкретный сайт, на котором есть полезный для меня контент, однако контент / реклама iframe содержит контент, который я бы предпочел не видеть. Так что мне нужно это только на временной основе. Danield 10 лет назад 0
То есть вы действительно хотите заблокировать фреймы на определенном сайте? gronostaj 10 лет назад 0
ну да может пара сайтов Danield 10 лет назад 0
Вы должны быть в состоянии создать фильтр AdBlock для этого. gronostaj 10 лет назад 0
хммм у меня не установлено расширение adblock ... если нет другого пути, то я попробую это Danield 10 лет назад 0
Как ни странно, есть встроенные опции для блокировки изображений, плагинов (например, flash) и т. Д., Почему не iframes - которые обычно связаны с рекламой и иногда довольно раздражают Danield 10 лет назад 1

2 ответа на вопрос

2
Danield

Я закончил тем, что использовал расширение "стильный"

Это позволяет вам указывать конкретные URL-адреса, а затем вы можете добавить собственные стили для этого сайта.

Вот сообщение в переполнении стека, которое иллюстрирует это.

Так что в моем случае я добавил следующие пользовательские CSS для конкретного веб-сайта, который мне нужен для таргетинга

iframe { display: none; } 

... и это прекрасно работает!

Какой смысл в этом? Javascript в iframes будет по-прежнему выполняться. kinokijuf 10 лет назад 2
Как я уже упоминал в комментариях к этому вопросу, я просто хочу скрыть содержание фреймов на определенном веб-сайте. Это не проблема безопасности здесь Danield 10 лет назад 4
Там нет смысла делать это kinokijuf 10 лет назад 0
Это действительно полезно для сокрытия iframe. Спасибо за решение. acsadam0404 10 лет назад 4
Дело в том, что когда уродливый iframe перекрывает основной контент на плохо спроектированном веб-сайте. Не ставьте под сомнение полезность, просто есть один человек, который нуждается в этом! Vijay 9 лет назад 1
2
haelmic

Просто удалите все элементы, которые являются iframes с JavaScript прямо в консоли

или установите плагин для более постоянного решения, такого как: noscript

Временное исправление

Одна линия:

(function()catch(e)})(); 

Это навсегда удалит фреймы на странице. (пока страница не обновится)

Чтобы использовать этот живой

  • открытая консоль ( F12ключ)
  • перейти на вкладку консоли
  • вставьте одну строку или человеческий код в

    > 

    поле и нажмите Enter

Человеческий код:

(function(){ var listOfFrames = document.getElementsByTagName("iframe");  while (listOfFrames /*exists*/ && (listOfFrames.length > 0) ) { try { for (var iterator in listOfFrames) { listOfFrames[iterator] // get the next frame .parentNode // find the parent  .removeChild( listOfFrames[iterator] ); // remove the frame from the parent } }catch(e){ // we found a frame that no longer exists console.error(e); } var listOfFrames =  document.getElementsByTagName("iframe"); // update the list regardless of errors in case we missed one } // loop again unless the condition is satisfied })(); // end of call of the function 

Прежде чем попробовать это

Если вы не знаете, как ваш браузер работает с циклами и удаляет элементы, убедитесь, что все сохранено локально или на сервере перед запуском. Запуск кода может удалить вашу работу. Будьте уверены, что вы будете в порядке, если ваш браузер падает .

Я отредактировал это, потому что я не думал, что это было читабельно, надеюсь, это лучше.

Небольшое примечание: я ожидаю, что `try ... catch` вокруг` f [i] .parentNode .removeChild (f [i]) `будет гарантировать, что другие все еще будут удалены. Arjan 6 лет назад 0
Спасибо за ваш вклад @Arjan Я добавлю твик, который работает немного лучше, к моему ответу. haelmic 6 лет назад 0

Похожие вопросы