![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Atlete |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 15.8.2007 Репутация: нет Всего: нет |
столкнулся с такой задачей как вставка произвольного HTML кода в iframe.
Чтобы было сразу понятнее задача связанная с WYSIWYG-редактором. есть такой код:
Такой код работает во всех браузерах (проверял в ИЕ, Mozilla и Chrome) кроме Opera. Я знаю что способ вставки HTML кода есть. Все что на гуглил показывало аналогичный пример. Что я делаю не так? Помогите найти решение. |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
Что-то как будто много лишнего…
|
|||
|
||||
| Atlete |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 15.8.2007 Репутация: нет Всего: нет |
если сделать appendChild то HTML добавиться в конец.
А суть в WYSIWYG редакторе добавлять именно там где стоит курсор. Так что указанный вами метод не подойдет. |
|||
|
||||
| Amphiluke |
|
||||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
Метод pasteHTML() понимает только IE. Opera — нет. Поэтому пересмотрите свою методику определения браузера. Opera будет нормально выполнять то, что что вы прописали для Gecko. Поэтому лучше сделать прооверку:
Добавлено через 10 минут и 56 секунд
|
||||
|
|||||
| Atlete |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 15.8.2007 Репутация: нет Всего: нет |
к сожалению это не так.
пробуем сделать так
результат undefined но если сделать так:
объект есть. Получается для ИЕ и Оперы надо использовать одинаковый метод. Но у обекта Range (CreateRange() ) в ИЕ гораздо больше методов, чем в Опере. Не хочется делать все через реплейсы...как то не интересно получается (((. |
||||
|
|||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
Я привел вам рабочий код в предыдущем сообщении.
в Opera показывает что требуется. Никаких undefined. |
|||
|
||||
| Atlete |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 15.8.2007 Репутация: нет Всего: нет |
Огромное спасибо. Верхний пост не видел.
Вставляется HTML. |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
В вашем коде isGecko = false в случае Opera, и поэтому iframe определяется через коллекцию frames, как для IE, а не через getElementById. Но возвращаемый таким образом объект окна не имеет свойства contentWindow (оно возвращается как undefined), поэтому и метод getSelection() в этом случае у вас не определяется в Opera.
Ой, не успел… =) Это сообщение отредактировал(а) Amphiluke - 8.1.2010, 13:51 |
|||
|
||||
| Atlete |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 15.8.2007 Репутация: нет Всего: нет |
Я уже разобрался по Вашему коду. Большое спасибо за оказанную помощь еще раз.
К сожалению не могу плюсануть - не хватает еще кол-в сообщений. |
|||
|
||||
| Frozen_Coyote |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 20.9.2007 Репутация: нет Всего: нет |
А не подскажете, как модифицировать код для Оперы, чтобы вставка происходила не в место, где курсор стоит, а замещая выделенный текст или объект? спасибо! |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
Для браузеров, кроме Opera, можно перед вставкой элемента вызывать метод deleteFromDocument() объекта Selection (а для IE — метод clear()). В Opera такой «фокус» не проходит. Для нее уже до нас придумали обходные пути.
Похоже, эти обходные пути уже тоже не работают... Это сообщение отредактировал(а) Amphiluke - 6.2.2011, 16:44 |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
Придумал для Opera другой обходной путь. Довольно извращенный, но рабочий.
|
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |