4

IE9 TinyMCE ajax 保存问题

我在一页中有几个标签,在一个标签中我有三个文本区域(都包含 TinyMCE)编辑器。

我正在使用 ajax 发布表单并保存值,然后重新显示从 PartialViewResult 返回的部分视图。

我正在使用 TinyMCE 的最新版本(3.5.8)。

当我第一次单击时,会保存 textarea 值。但是当我第二次点击标签消失并给我'SCRIPT70:权限被拒绝'。

错误发生在 tiny_mce_src.js 中

    getBody : function() {
        return this.bodyElement || this.getDoc().body;
    }

我试过使用 document.domain = 'localhost'(写在 tiny_mce_src.js 的顶部),它可以工作,但只有一个 textarea 转换为 TinyMCE 编辑器,另外两个仍然是正确的 textarea。

还尝试将其设置为 1(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_OBJECT_CACHING\iexplore.exe)

我发布表格和重新显示的代码如下。

    $(".save").live("click", function () {
           tinyMCE.triggerSave();
           var f = $(this).parents("form");
           var action = f.attr("action");
           var serializedForm = f.serialize();
           $.ajax({
               type: 'POST',
               url: action,
               data: serializedForm,
               async: false,
               cache: false,
               success: function (data, textStatus, request) {
                     // redisplay partial view
                     $("div.tab-pane.active").html(data);
                     window.scrollTo(0, 0);
                     InItTinyMCE();
               },
               error: function (req, status, error) {
                     alert("Error occurred!");
               }
           });
           return false;
    });

    function InItTinyMCE() {
           tinyMCE.init({
              mode: "textareas",
              cleanup: true
           });
    }

请帮忙。

4

3 回答 3

3

您可能必须正确重新初始化 tinymce 实例

要关闭编辑器实例,请使用:

tinymce.execCommand('mceRemoveControl',true,'your_editor_id');

重新初始化使用

tinymce.execCommand('mceAddControl',true,'your_editor_id');
于 2013-01-25T09:10:39.637 回答
0

尝试使用模式:精确

$(window).ready(function() {
tinyMCE.init({
    ...
    mode : "exact",
    elements : "elm1,elm2"
});

})

.....................

于 2013-01-25T05:25:21.030 回答
0
add some line in Sizzle function in sizzle.js like this -

function Sizzle( selector, context, results, seed ) {
var match, elem, m, nodeType,
// QSA vars
i, groups, old, nid, newContext, newSelector;

try{
document === document; //may cause permission denied
}
catch(err){
document = window.document; //resets document, and no more permission denied errors.
}
if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
setDocument( context );
}
//remaining code will be same 

}
于 2015-03-13T06:50:51.797 回答