tinymce官方提供的API auto_focus存在一些問題,在編輯時候如果輸入框有內容auto_focus方法會自動獲取焦點不過光標在最前面
我們可以調用這個函數去解決這個問題
//獲取焦點光標到最后面 keepLastIndex (obj, window) { if (window.getSelection) { //ie11 10 9 ff safari obj.focus(); //解決ff不獲取焦點無法定位問題 var range = window.getSelection(); //創建range range.selectAllChildren(obj); //range 選擇obj下所有子內容 range.collapseToEnd(); //光標移至最后 } else if (document.selection) { //ie10 9 8 7 6 5 var range = document.selection.createRange(); //創建選擇對象 range.moveToElementText(obj); //range定位到obj range.collapse(false); //光標移至最后 range.select(); } }
mounted () { tinymce.init({}) this.$nextTick(() => { var ifra = document.getElementById("tinymces_ifr"); this.keepLastIndex(ifra.contentWindow.document.getElementById('tinymce'), ifra.contentWindow) }) },
不過這里還有一個問題,tinymce是iframe內嵌的文本框該函數需要接受到iframe的window才能實現,我的項目是使用的vue框架,我是單獨把tinymce單獨封裝了一個組件我直接在mounted生命周期里調用了這個函數這樣就解決了tinymce獲取焦點光標在最前面的問題。