0

这是示例代码(完全正常工作 - 只需复制到一个空的 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 也是如此) - 这是一个很大的坏问题(到目前为止我已经尝试了两个,这就是我开始研究这个问题的方式) !

任何关于我如何解决这个问题的想法/评论/建议,都非常感谢!

谢谢你,安德烈

4

1 回答 1

0

init 应该在 open 之后

var dlg = null;
jQuery(document).ready(function() {



    dlg = jQuery("#dlgDiv").dialog({
            autoOpen: false,
            bgiframe: true,
            modal: true,
            width: 400
    })

    dlg.dialog('open');

    Init();
})
于 2010-01-11T10:26:25.510 回答