Как получить HTML-разметку для createRange () в Firefox - PullRequest
0 голосов
/ 13 апреля 2010

Я сейчас использую код, подобный этому:

try {
 // IE ONLY
 var theElement = "myElementName";
 window.frames[theElement].focus();
 var selection = window.frames[theElement].document.selection.createRange();
 alert ( selection.htmlText );  
} catch(e) {
 var selection = window.frames[theElement].document.getSelection();
 alert ( selection );       
}

Как видите, я получаю доступ к узлу из iframe (уже не весело). Я определенно нахожусь здесь на новой территории, поэтому я уверен, что есть еще проблемы, но сейчас я пытаюсь заставить Firefox дать мне тот же результат, что и IE .

В IE я могу получить доступ к HTML-коду выбора, используя ( очевидно только для IE ) htmlText объекта, возвращаемого createRange () . То, что я ищу, - это аналог Firefox ( или функция, которую я могу использовать для получения того же результата ).

Кто-нибудь знает, как это сделать?

1 Ответ

2 голосов
/ 13 апреля 2010

Это работает в Firefox 2 и более поздних версиях (не тестировалось в предыдущих версиях):

var selection = window.frames[theElement].getSelection();
var range = selection.getRangeAt(0);
var div = document.createElement("div");
div.appendChild(range.cloneContents());
alert(div.innerHTML);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...