所以我正在爲ckeditor(@mentions)寫一個插件。CKEDITOR 4.3.2 IE11權限被拒絕
當您鍵入某些字符(例如「@John」)時,會出現一個用戶可以選擇的Johns列表的下拉列表。當用戶選擇他們想要的下拉列表時,它需要刪除「@John」文本並插入從下拉列表中檢索到的元素。嘗試插入文本時,會出現問題,刪除一些文本並設置currsor位置。
守則
var html = '<span>InsertedElement</span> ';
// Create the Element to insert
var newElement = CKEDITOR.dom.element.createFromHtml(html, mentions.editor.document);
//Insert the element
mentions.editor.insertElement(newElement);
//Get a new bookmark
var tempBookMark = mentions.editor.getSelection().createBookmarks(true);
// get the data
var edata = mentions.editor.getData();
// set it with the exact same info so not changes (just for the test)
mentions.editor.setData(edata);
//set the bookmark
mentions.editor.getSelection().selectBookmarks(tempBookMark);
//focas on that position
mentions.editor.focus();
問題
文已被刪除後,當我嘗試訪問mentions.editor.getSelection這適用於Chrome但是在IE11就好()我得到「權限被拒絕」的錯誤。我無法設置書籤,焦點移動到ckeditor的開頭。
[更新] 我進行的進一步測試縮小了問題範圍。評論出mentions.editor.setData(edata);行它停止錯誤。如果我在編輯器實例上使用setData函數,然後嘗試在編輯器實例上運行GetSelection(),它會在IE11中出現錯誤(權限被拒絕),但在Chrome中起作用。它似乎setData函數在IE11中以某種方式鎖定編輯器?我簡化了代碼,使它更容易複製。
沒有完整的工作示例,它很難提供幫助。但是,關於「權限被拒絕」錯誤本身,我知道當您嘗試訪問元素中哪個文檔不存在時,會拋出它,所以也許您將某些東西緩存了太久。 – Reinmar
完整示例使用本地服務非常難以發佈完整的腳本等。我簡化了代碼並提供了進一步的測試用例,可以縮小問題發生的位置。希望這可以幫助@Reinmar?謝謝 – user1619480