То, как получить весь <img>, отмечает в текстовом выборе?

Я озирался некоторое время, но, кажется, нет простого способа сделать это. jQuery не помогает в наименьшем, это, кажется, полностью испытывает недостаток в любой поддержке диапазонов DOM или выбора. Что-то, что я надеялся, будет так же просто как $.selection.filter('img') кажется, только является выполнимым с десятками строк кода, имеющего дело с ручным перечислением элементов в диапазонах и несоответствиях реализации браузера (хотя ierange помогает здесь). Какие-либо другие ярлыки?

8
задан Vladimir Panteleev 8 May 2010 в 08:13
поделиться

3 ответа

var fragment = getSelection().getRangeAt(0).extractContents();

Узлы в выделении будут удалены и возвращены в DocumentFragment , и теперь вы можете получить доступ к childNodes ] из фрагмента точно так же, как и любой другой элемент.

2
ответ дан 6 December 2019 в 00:05
поделиться

кажется, что полностью отсутствует поддержка выбора или диапазонов DOM

Да, причина в том, что IE не поддерживает выбор и диапазон DOM. Вы можете построить слой абстракции поверх нестандартных объектов IE TextRange, но из-за чрезвычайно плохого интерфейса, предоставляемого TextRanges, это сложно, медленно и достаточно сложно, чтобы это было полноценной библиотекой. См. Например. этот .

1
ответ дан 6 December 2019 в 00:05
поделиться
$("img", window.getSelection().getRangeAt(0).extractContents());

К сожалению, вы придется использовать вышеупомянутую библиотеку IERange для поддержки IE 6/7/8.

Примечательно: Диапазон DOM будет реализован в IE9 , и есть разговоры о новых API выбора в HTML5

1
ответ дан 6 December 2019 в 00:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: