火狐浏览器 iframe 设计模式不起作用



我有Web应用程序,用户可以在其中键入iframe(富文本编辑器),当他们单击一个按钮时,iframe将显示。当用户单击新iframe按钮时的HTML代码: <input name="add_button" type="button" value="New frame" onClick="javascript:add_new_frame();"/>

用于创建 iframe 和 DesignMode 的 JavaScript 代码

 function add_new_frame(){
$("<iframe class="a" id="a" name="a"/>").appendTo(id);
        var editor = document.getElementById ("a");
        editorDoc = editor.contentWindow.document; 
        editorDoc1 = document.getElementById ("a").contentDocument;                 
        var editorBody = editorDoc.body;
         if ('spellcheck' in editorBody) {    // Firefox
            editorBody.spellcheck = false;
        }
        if ('contentEditable' in editorBody) {
                // allow contentEditable
            editorBody.contentEditable = true;
             editorDoc1.designMode = "on";    
        }
        else {  
          if ('designMode' in editorDoc1) {
                editorDoc1.designMode = "on";                
            }            
        }   
    }

我已经在上面测试过(铬,歌剧,野生动物园,IE),它工作正常。但是,它在 FF 上不起作用,iframe 显示出来,但我无法编辑它(设计模式不起作用)。有什么解决办法吗?对不起,英语不好

你在 iframe 元素中错过了 \ 来屏蔽"

function add_new_frame(){
$("<iframe class="a" id="a" name="a"/>").appendTo(id);
        var editor = document.getElementById ("a");
        editorDoc = editor.contentWindow.document; 
        editorDoc1 = document.getElementById ("a").contentDocument;                 
        var editorBody = editorDoc.body;
         if ('spellcheck' in editorBody) {    // Firefox
            editorBody.spellcheck = false;
        }
        if ('contentEditable' in editorBody) {
                // allow contentEditable
            editorBody.contentEditable = true;
             editorDoc1.designMode = "on";    
        }
        else {  
          if ('designMode' in editorDoc1) {
                editorDoc1.designMode = "on";                
            }            
        }   
    }
<html>    <head>   <title>Untitled Page</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $ = jQuery;
        function frame() {
            $("<iframe class="a" id="a" name="a"/>").appendTo(id);
            var editor = document.getElementById("a");
            editorDoc = editor.contentWindow.document;
            editorDoc1 = document.getElementById("a").contentDocument;
            var editorBody = editorDoc.body;
            if ('spellcheck' in editorBody) {    // Firefox
                editorBody.spellcheck = false;
            }
            if ('contentEditable' in editorBody) {
                // allow contentEditable
                editorBody.contentEditable = true;
                editorDoc1.designMode = "on";
            }
            else {
                if ('designMode' in editorDoc1) {
                    editorDoc1.designMode = "on";
                }
            }
        }     
    </script>
</head>
<body>
    <input name="add_button" type="button" value="New frame" onclick="frame()" />
    <p id="id">
        contents</p>
</body>
</html>

最新更新