Запрет JavaScript внутри Fancybox - PullRequest
2 голосов
/ 27 мая 2011

Большинство результатов поиска по запросу «предотвратить JavaScript внутри Fancybox» приводят к жалобам людей на то, что доступ к функциям JavaScript в Fancybox ограничен. Моя проблема как раз в обратном.

Моя программа хранит страницы из Интернета для последующего отображения (это для контента, который в противном случае изменился бы со временем - подумайте о новостях без постоянных ссылок). Затем пользователь может выполнять поиск по содержанию этих историй по определенным ключевым словам (сейчас я выполняю полнотекстовый поиск по содержимому без HTML, используя FTS в SQLite). В случае совпадения отображается фрагмент и предоставляется ссылка, позволяющая просматривать сохраненный рассказ во всплывающем окне Fancybox.

Проблема в том, что когда извлеченная история извлекается из базы данных и просматривается с помощью ajax в Fancybox, встроенный JavaScript-код пытается добавить ее, возможно, изменить размер страницы или попытаться открыть всплывающие окна и т. Д.

Два вопроса. Во-первых, можно ли запретить запуск JavaScript в окне Fancybox? Во-вторых, есть ли лучший, более элегантный способ сделать это? Одним из способов может быть преобразование веб-страницы в PDF, а затем сохранение этого PDF. Но это сложнее, и это сломалось бы для длинных историй. Мы хотим иметь возможность просматривать историческую историю, даже если она не соответствует действительности оригиналу в том, что касается внешнего вида.

Ответы [ 2 ]

2 голосов
/ 27 мая 2011

Вы можете начать с удаления тегов <script> (конечно, на сервере).

0 голосов
/ 27 мая 2011

Отображение содержимого в формате <iframe>, предпочтительно с другого домена, чтобы браузер применял политики безопасности того же источника.Скрипты на странице будут по-прежнему работать (что может быть хорошо - возможно, некоторые из этих страниц полагаются на скрипты для некоторой их функциональности), но ваша содержащаяся страница будет защищена от любого вмешательства этих скриптов.*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...