IE9 ajax保存权限被拒绝

IE9 ajax保存权限被拒绝,ajax,internet-explorer-9,tinymce,save,Ajax,Internet Explorer 9,Tinymce,Save,IE9 TinyMCE ajax保存问题 我在一个页面中有几个选项卡,在其中一个选项卡中有三个文本区域(都包含TinyMCE)编辑器 我使用ajax发布表单并保存值,然后重新显示从PartialViewResult返回的部分视图 我使用的是TinyMCE的最新版本(3.5.8) 当我第一次单击时,textarea值被保存。但当我第二次单击时,该选项卡消失,并显示“SCRIPT70:权限被拒绝” 该错误发生在位于的tiny_mce_src.js中 getBody : function()

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\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE\u OBJECT\u 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
           });
    }
请帮助。

尝试使用模式:精确

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

})


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

要关闭edtor实例,请使用:

tinymce.execCommand('mceRemoveControl',true,'your_editor_id');
重新初始化使用

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

我已经尝试过了,它也起到了作用,但当我指定document.domain时,只有一个文本区域转换为tinyMCE编辑器,另外两个文本区域呈现为正确的文本区域。这意味着我应该首先在InItTinyMCE方法中初始化,然后在成功回调时删除并重新初始化吗?否,但您的问题中不清楚编辑器实例是否正在重新初始化,或者是否位于选项卡或其他位置。tinymce不喜欢在dom中移动,第二次初始化编辑器会导致您描述的行为是的,您是对的。我两次初始化tinymce(第一次是在加载选项卡时,第二次是在成功回调时)。我只减少了TinyMCE的初始化一次。现在关闭编辑器,并在需要时随时重新初始化。非常感谢您的回复。
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 

}