Подтвердить что ты не робот

Запретить выделение серым цветом в iframe в Firefox без использования контентной

В Firefox 3 и более поздних версиях (и, возможно, в более ранних версиях) выбор содержимого внутри iframe всегда, как представляется, использует серый цвет выделения, используемый для документа, который в настоящее время не имеет фокуса, даже если в iframe есть фокус. Единственное исключение, которое я смог найти, - это когда содержимое внутри iframe доступно для редактирования. Это не так в других браузерах. Вот пример, иллюстрирующий это:

http://jsfiddle.net/97Vjz/

Это, к сожалению, не позволяет стилизовать выделение внутри iframe, используя псевдоэлемент CSS ::-moz-selection, потому что он применим только к не серого выбора:

http://jsfiddle.net/YYXSY/1/

Мой вопрос: возможно ли исключить выбор iframe в Firefox без с помощью contenteditable/designMode?

UPDATE

Это похоже на динамически написанные фреймы: использование отдельного файла и атрибута src решает проблему. Тем не менее, мне нужно, чтобы он работал с динамически написанными iframes.

4b9b3361

Ответ 1

Я просто попытался воспроизвести проблему с "реальной" страницей как с содержимым iframe, а затем она работает так, как вы хотите: выделение синего цвета! (FF 5.0)

см. http://jsfiddle.net/97Vjz/8/

Кажется, что только созданный контент имеет эту проблему, поэтому вы можете сделать страницу (php/asp (x)), которая генерирует контент для вас, чтобы обойти проблему.

Другим решением для использования содержимого, созданного javascript, является загрузка его с помощью src="javascript:'<html />'" (на самом деле это собственное решение Tim из комментариев ниже).

Простой пример script: http://jsfiddle.net/97Vjz/9/

 iframe.src='javascript:\'<html><body>' + content + '</body></html>\'';

Ответ 2

Существует свойство iframe, отображаемое в Firebug DOM инспекторе contentDocument->designMode, для которого установлено iFrames. Принуждение к истине через инспектор DOM позволяет вам синюю подсветку.

Ответ 3

Гипотеза. Кажется, что для динамически написанных iFrames визуализируется XUL Iframe или механизм Gecko не соблюдает стили.

За исключением сообщения об ошибке, единственное решение, которое я вижу, - это обернуть наше содержимое в textarea и создать его, чтобы сделать его "невидимым": http://jsfiddle.net/mrchief/YYXSY/19/