2015-12-29 6 views
2

Я пытаюсь использовать iframe (в designMode) в качестве редактора расширенного текста.document.execCommand не будет раскрываться в IE11

<iframe name="richTextField" id="richTextField" class="rte"></iframe> 

У меня также есть кнопка, которая может полужирный/нежирным шрифтом текст в IFRAME, вызвав функцию яваскрипта iBold.

<a href="javascript:iBold()" type="button" value="bold"><img src="/images/bold.gif" id="boldButton"/></a> 

function iBold() 
{ 
    richTextField.document.execCommand('bold'); 
    console.log(window.frames['richTextField'].document.body.innerHTML); 
} 

Смелая кнопка работает в большинстве случаев, но есть один случай, что он не работает (в IE11). Если я выделяю (выделяю) небольшие части текста в iframe, я могу выделить его, а также откручивать его с помощью полужирной кнопки, но если я выберу ВСЕ текст в iframe, я могу выделить его, но я никогда не смогу его открутить. После этого текст становится бессмысленным; независимо от того, что я выбираю/выделяю, execCommand ничего не открутит. Примечание: он отлично работает в Firefox, конечно.

http://jsbin.com/hiwetumobo/1/edit?html,js,output

+1

'execCommand' кажется, как известно, хрупким по-прежнему в разных средах. http://stackoverflow.com/questions/16225718/unable-to-get-document-execcommandundo-working-in-the-same-manner-across-bro и http://stackoverflow.com/questions/34498431/copy- и-paste-in-javascript-document-execcommandpaste-is-not-working-but? lq = 1 Это не ответ, но вы можете найти некоторые обрывки, которые помогут. – Xotic750

ответ

0

Это на самом деле не самое лучшее решение, но следующий будет работать, по крайней мере.

if(isIE11) { 
isBolded = yourDocumentHere.queryCommandValue('bold'); 
if(isBolded) { 
    yourDocumentHere.execCommand('removeFormat', false) 
} 
}