Empêchez la sélection d'être grisée dans iframe dans Firefox sans utiliser de contestation

Dans Firefox 3 et versions ultérieures (et probablement plus anciennes), la sélection du contenu dans un iframe semble toujours utiliser la couleur de fond de la sélection de gris utilisée pour un document qui n'a pas encore de focus, même si l'iframe a la mise au point. La seule exception que j'ai pu trouver est lorsque le contenu de l'iframe est modifiable. Ce n'est pas le cas dans d'autres navigateurs. Voici un exemple illustrant ceci:

Http://jsfiddle.net/97Vjz/

Cela empêche mal de coiffer la sélection dans un iframe à l'aide du pseudo-élément CSS de ::-moz-selection car il s'applique uniquement aux sélections non grises:

Http://jsfiddle.net/YYXSY/1/

Ma question est la suivante: est-il possible d'empêcher la sélection d'un iframe de gris dans Firefox sans utiliser contenteditable / designMode ?

METTRE À JOUR

Cela ne semble se produire que sur des iframes écrits dynamiquement: l'utilisation d'un fichier distinct et l'attribut src résolvent le problème. Cependant, je l'ai besoin pour travailler avec des iframes écrits dynamiquement.

J'ai juste essayé de reproduire le problème avec une page "réelle" comme contenu d'iframe et ça fonctionne comme vous le souhaitez: sélection de couleur bleue! (FF 5.0)

Voir: http://jsfiddle.net/97Vjz/8/

Il semble que le contenu généré ait ce problème, afin que vous puissiez créer une page (php / asp (x)) qui génère le contenu pour que vous puissiez contourner le problème.

Une autre solution pour utiliser le contenu généré par javascript est de le charger avec src="javascript:'<html />'" (en fait, c'est la solution de Tim à partir des commentaires ci-dessous).

Un script d'exemple simple: http://jsfiddle.net/97Vjz/9/

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

Il existe une propriété de l'iframe exposée dans le contentDocument->designMode inspecteur DOM de contentDocument->designMode qui est défini comme faux pour vous iFrames. Le fait de le forcer à vrai dans l'inspecteur des DOM permet la mise en surbrillance bleue que vous attendez.

Hypothèse: il semble que pour les iFrames écrits de façon dynamique, soit un Iframe XUL soit rendu ou le moteur Gecko n'honore pas les styles.

À défaut de soumettre un bug, la seule solution possible que je peux voir est d'envelopper notre contenu dans une zone de textarea et de le textarea pour le rendre invisible: http://jsfiddle.net/mrchief/YYXSY/19/