防止选择在Firefox中的iframe中显示为灰色,而不使用contenteditable

Tim*_*own 12 javascript css iframe firefox selection

在Firefox 3及更高版本(可能是旧版本)中,选择iframe中的内容似乎总是使用用于当前没有焦点的文档的灰色选择背景颜色,即使iframe确实具有焦点.我能找到的唯一例外是iframe中的内容是可编辑的.在其他浏览器中并非如此.这是一个说明这个的例子:

http://jsfiddle.net/97Vjz/

遗憾的是,这会阻止使用::-moz-selectionCSS伪元素在iframe中设置样式,因为它仅适用于非灰色选择:

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

我的问题是:是否可以防止iframe的选择在Firefox中变为灰色而不使用contenteditable/ designMode

UPDATE

这似乎只发生在动态编写的iframe上:使用单独的文件,该src属性解决了问题.但是,我确实需要它来处理动态编写的iframe.

Wil*_*lem 7

我只是尝试用"iframe"内容的"真实"页面重现问题,然后它就像你想要的那样:蓝色选择!(FF 5.0)

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

似乎只有生成的内容有这个问题,所以你可以创建一个页面(php/asp(x)),为你生成内容来规避问题.

使用javascript生成的内容的另一个解决方案是加载它src="javascript:'<html />'"(实际上这是Tim自己的解决方案,来自下面的评论.)

一个简单的示例脚本:http://jsfiddle.net/97Vjz/9/

 iframe.src='javascript:\'<html><body>' + content + '</body></html>\'';
Run Code Online (Sandbox Code Playgroud)