这是示例代码(完全正常工作 - 只需复制到一个空的 html 文件就可以了):
<html>
<head>
<title></title>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/redmond/jquery-ui.css" type="text/css" media="screen" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script language="javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js"></script>
<script type="text/javascript" language="javascript">
function Init()
{
var doc = document.getElementById("iView").contentWindow.document;
doc.designMode = "On"
doc.open()
doc.write("<html><head></head><body class='some-class'>Some test text</body></html>");
doc.close();
}
</script>
</head>
<body>
<div id="dlgDiv" style="width:202px; height:72px; border: solid 1px grey">
<iframe id="iView" style="width: 200px; height:70px" frameborder="0"></iframe>
</div>
<script type="text/javascript">
var dlg = null;
jQuery(document).ready(function() {
Init();
dlg = jQuery("#dlgDiv").dialog({
autoOpen: false,
bgiframe: true,
modal: true,
width: 400
})
dlg.dialog('open');
})
</script>
</body>
</html>
现在,当我在 IE 中运行它时,我可以编辑 iframe 的内容;同样使用 IE Developer Toolbar 我可以看到 iframe 的主体保留了我指定的类“some-class”。但是,当在 FF 中运行它时,iframe 是不可编辑的,当使用 firebug 检查它的 DOM 时,我看到 iframe 的主体是空的并且没有类。所以看起来FF对话框制作了div的浅表副本,而不是使用div本身(dlgDiv)进行对话框,或者类似的东西......
基本上这意味着没有任何基于 javasript 的富文本编辑器可以在 FF 的 jQuery 对话框中工作(顺便说一句 Google Chrome 也是如此) - 这是一个很大的坏问题(到目前为止我已经尝试了两个,这就是我开始研究这个问题的方式) !
任何关于我如何解决这个问题的想法/评论/建议,都非常感谢!
谢谢你,安德烈