28.10.2010, 10:33
|
|
Интересующийся
|
|
Регистрация: 21.09.2009
Сообщений: 26
|
|
Как поместить курсор в 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);
}
}
Подскажите пожалуйста, что я сделал неправильно.
|
|
28.10.2010, 13:25
|
|
Пионэр
|
|
Регистрация: 16.11.2009
Сообщений: 1,322
|
|
Движок Оперы не Gecko, а Presto.
Вы проверяете не то, что браузер умеет, а то, какой он. Такая дискриминация по юзер-агенту до добра не доводит.
|
|
28.10.2010, 13:48
|
|
Интересующийся
|
|
Регистрация: 21.09.2009
Сообщений: 26
|
|
Сообщение от subzey
|
Движок Оперы не Gecko, а Presto.
Вы проверяете не то, что браузер умеет, а то, какой он. Такая дискриминация по юзер-агенту до добра не доводит.
|
Вы, наверно, не заметили if(!isGecko) - означает "Если не Gecko".
Пофик, сделаю проверку по имени браузера
Какой код должен быть для оперы?
Заранее спасибо
Последний раз редактировалось mcfly, 28.10.2010 в 14:12.
|
|
28.10.2010, 14:24
|
|
Пионэр
|
|
Регистрация: 16.11.2009
Сообщений: 1,322
|
|
Более развернуто: не используйте определение возможностей браузера по его имени, движку и прочей номенклатуре. Проверяйте то, что хотите использовать.
Например:
if (document.addEventListener) /* ... */ else if (document.attachEvent) /* ... */ else /* ... */
Казалось бы, можно проще: раз IE, значит, attachEvent , иначе addEventListener . Но в IE9 уже есть поддержка addEventListener , и вот тут нестыковка, вроде, и IE, а, вроде и нужое умеет.
Или, к примеру, Вы подключаете библиотеку XPath на IE, а другой скрипт не хочет ее использовать, мотивируя это тем, что не может же быть XPath в IE!
|
|
28.10.2010, 15:01
|
|
Интересующийся
|
|
Регистрация: 21.09.2009
Сообщений: 26
|
|
Про это понятно. Но, все же, я о другом спрашивал: Как поставить в опере курсор в iframe, в указанную позицию?
|
|
29.10.2010, 09:43
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от subzey
|
Казалось бы, можно проще: раз IE, значит, attachEvent, иначе addEventListener. Но в IE9 уже есть поддержка addEventListener, и вот тут нестыковка, вроде, и IE, а, вроде и нужое умеет.
|
Есть более прикольные вещи. В IE8, например, есть нативная поддержка JSON. Но если IE8 метатегом сбрасывается в режим эмуляции IE7 или на странице нет doctype, то поддержки JSON нет.
|
|
29.10.2010, 09:59
|
|
Интересующийся
|
|
Регистрация: 21.09.2009
Сообщений: 26
|
|
Народ, 3 сообщения от пользователей с крутейшей каромй и все, можно сказать, офтопик.
Сабж: Как поставить в опере курсор в iframe, в указанную позицию?
|
|
29.10.2010, 15:43
|
Аспирант
|
|
Регистрация: 26.10.2010
Сообщений: 78
|
|
Незнаю зачем вам там курсор, но насколько я знаю курсор можно поставить только в поле ввода.
У меня есть 2 идеи но это так мысли вслух.
1-я есть у IFrame свойсвто designMode которое использую визивиг редакторы так вот активировав этот режим и сделав активным фрэйм получим там курсор, останется только ЦСС установить оступ.
2-я банально в тело фрэйма вставить textarea и заскинить ЦСС так что бы она вписывалась в общую картину (убрать паддинг и бордер) оступ опять же выставить ЦССом.
Вот и всё, так как я не понял зачем курсор поэтому такие и идеи, просьба сильно не ругать.
|
|
29.10.2010, 15:59
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
mcfly,
я точно не знаю, но что-то мне подсказывает, что ваша функция для Gecko на самом деле должна выполняться для всех браузеров, кроме IE.
|
|
29.10.2010, 16:20
|
|
Интересующийся
|
|
Регистрация: 21.09.2009
Сообщений: 26
|
|
Сообщение от Kolyaj
|
mcfly,
я точно не знаю, но что-то мне подсказывает, что ваша функция для Gecko на самом деле должна выполняться для всех браузеров, кроме IE.
|
Сам удивлен, но пашет везде, кроме Оперы. Могу выложить текст хтмлки, чтобы протестить можно было
|
|
|
|