Как поместить курсор в IFrame в Opera
Добрый день.
Написал функцию установки курсора в iframe. Но она, к содалению, не пашет в Opera. function сursorGoTo(pos) { var isGecko = navigator.userAgent.toLowerCase().indexOf("gecko") != -1; var iframe = (isGecko) ? document.getElementById("frameId") : frames["frameId"]; var iDoc = (isGecko) ? iframe.contentDocument : iframe.document; iframe.focus(); if(!isGecko) { var oRange = iDoc.body.createTextRange(); oRange.move("character", pos); oRange.select(); } else { DocumentSelection.setRange(iframe, pos, pos); } } Подскажите пожалуйста, что я сделал неправильно. |
Движок Оперы не Gecko, а Presto.
Вы проверяете не то, что браузер умеет, а то, какой он. Такая дискриминация по юзер-агенту до добра не доводит. |
Цитата:
Пофик, сделаю проверку по имени браузера :) Какой код должен быть для оперы? Заранее спасибо :) |
Более развернуто: не используйте определение возможностей браузера по его имени, движку и прочей номенклатуре. Проверяйте то, что хотите использовать.
Например: if (document.addEventListener) /* ... */ else if (document.attachEvent) /* ... */ else /* ... */ Казалось бы, можно проще: раз IE, значит, attachEvent , иначе addEventListener . Но в IE9 уже есть поддержка addEventListener , и вот тут нестыковка, вроде, и IE, а, вроде и нужое умеет.Или, к примеру, Вы подключаете библиотеку XPath на IE, а другой скрипт не хочет ее использовать, мотивируя это тем, что не может же быть XPath в IE! |
Про это понятно. Но, все же, я о другом спрашивал: Как поставить в опере курсор в iframe, в указанную позицию?
|
Цитата:
|
Народ, 3 сообщения от пользователей с крутейшей каромй и все, можно сказать, офтопик.
Сабж: Как поставить в опере курсор в iframe, в указанную позицию? |
Незнаю зачем вам там курсор, но насколько я знаю курсор можно поставить только в поле ввода.
У меня есть 2 идеи но это так мысли вслух. 1-я есть у IFrame свойсвто designMode которое использую визивиг редакторы так вот активировав этот режим и сделав активным фрэйм получим там курсор, останется только ЦСС установить оступ. 2-я банально в тело фрэйма вставить textarea и заскинить ЦСС так что бы она вписывалась в общую картину (убрать паддинг и бордер) оступ опять же выставить ЦССом. Вот и всё, так как я не понял зачем курсор поэтому такие и идеи, просьба сильно не ругать. |
mcfly,
я точно не знаю, но что-то мне подсказывает, что ваша функция для Gecko на самом деле должна выполняться для всех браузеров, кроме IE. |
Цитата:
|
Часовой пояс GMT +3, время: 18:02. |