Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.10.2010, 10:33
Аватар для mcfly
Интересующийся
Отправить личное сообщение для mcfly Посмотреть профиль Найти все сообщения от mcfly
 
Регистрация: 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);
  }
}


Подскажите пожалуйста, что я сделал неправильно.
Ответить с цитированием
  #2 (permalink)  
Старый 28.10.2010, 13:25
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Движок Оперы не Gecko, а Presto.
Вы проверяете не то, что браузер умеет, а то, какой он. Такая дискриминация по юзер-агенту до добра не доводит.
Ответить с цитированием
  #3 (permalink)  
Старый 28.10.2010, 13:48
Аватар для mcfly
Интересующийся
Отправить личное сообщение для mcfly Посмотреть профиль Найти все сообщения от mcfly
 
Регистрация: 21.09.2009
Сообщений: 26

Сообщение от subzey Посмотреть сообщение
Движок Оперы не Gecko, а Presto.
Вы проверяете не то, что браузер умеет, а то, какой он. Такая дискриминация по юзер-агенту до добра не доводит.
Вы, наверно, не заметили if(!isGecko) - означает "Если не Gecko".
Пофик, сделаю проверку по имени браузера

Какой код должен быть для оперы?

Заранее спасибо

Последний раз редактировалось mcfly, 28.10.2010 в 14:12.
Ответить с цитированием
  #4 (permalink)  
Старый 28.10.2010, 14:24
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Более развернуто: не используйте определение возможностей браузера по его имени, движку и прочей номенклатуре. Проверяйте то, что хотите использовать.

Например:
if (document.addEventListener) /* ... */ else if (document.attachEvent) /* ... */ else /* ... */


Казалось бы, можно проще: раз IE, значит, attachEvent, иначе addEventListener. Но в IE9 уже есть поддержка addEventListener, и вот тут нестыковка, вроде, и IE, а, вроде и нужое умеет.

Или, к примеру, Вы подключаете библиотеку XPath на IE, а другой скрипт не хочет ее использовать, мотивируя это тем, что не может же быть XPath в IE!
Ответить с цитированием
  #5 (permalink)  
Старый 28.10.2010, 15:01
Аватар для mcfly
Интересующийся
Отправить личное сообщение для mcfly Посмотреть профиль Найти все сообщения от mcfly
 
Регистрация: 21.09.2009
Сообщений: 26

Про это понятно. Но, все же, я о другом спрашивал: Как поставить в опере курсор в iframe, в указанную позицию?
Ответить с цитированием
  #6 (permalink)  
Старый 29.10.2010, 09:43
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от subzey
Казалось бы, можно проще: раз IE, значит, attachEvent, иначе addEventListener. Но в IE9 уже есть поддержка addEventListener, и вот тут нестыковка, вроде, и IE, а, вроде и нужое умеет.
Есть более прикольные вещи. В IE8, например, есть нативная поддержка JSON. Но если IE8 метатегом сбрасывается в режим эмуляции IE7 или на странице нет doctype, то поддержки JSON нет.
Ответить с цитированием
  #7 (permalink)  
Старый 29.10.2010, 09:59
Аватар для mcfly
Интересующийся
Отправить личное сообщение для mcfly Посмотреть профиль Найти все сообщения от mcfly
 
Регистрация: 21.09.2009
Сообщений: 26

Народ, 3 сообщения от пользователей с крутейшей каромй и все, можно сказать, офтопик.

Сабж: Как поставить в опере курсор в iframe, в указанную позицию?
Ответить с цитированием
  #8 (permalink)  
Старый 29.10.2010, 15:43
2de 2de вне форума
Аспирант
Отправить личное сообщение для 2de Посмотреть профиль Найти все сообщения от 2de
 
Регистрация: 26.10.2010
Сообщений: 78

Незнаю зачем вам там курсор, но насколько я знаю курсор можно поставить только в поле ввода.

У меня есть 2 идеи но это так мысли вслух.

1-я есть у IFrame свойсвто designMode которое использую визивиг редакторы так вот активировав этот режим и сделав активным фрэйм получим там курсор, останется только ЦСС установить оступ.

2-я банально в тело фрэйма вставить textarea и заскинить ЦСС так что бы она вписывалась в общую картину (убрать паддинг и бордер) оступ опять же выставить ЦССом.

Вот и всё, так как я не понял зачем курсор поэтому такие и идеи, просьба сильно не ругать.
Ответить с цитированием
  #9 (permalink)  
Старый 29.10.2010, 15:59
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

mcfly,
я точно не знаю, но что-то мне подсказывает, что ваша функция для Gecko на самом деле должна выполняться для всех браузеров, кроме IE.
Ответить с цитированием
  #10 (permalink)  
Старый 29.10.2010, 16:20
Аватар для mcfly
Интересующийся
Отправить личное сообщение для mcfly Посмотреть профиль Найти все сообщения от mcfly
 
Регистрация: 21.09.2009
Сообщений: 26

Сообщение от Kolyaj Посмотреть сообщение
mcfly,
я точно не знаю, но что-то мне подсказывает, что ваша функция для Gecko на самом деле должна выполняться для всех браузеров, кроме IE.
Сам удивлен, но пашет везде, кроме Оперы. Могу выложить текст хтмлки, чтобы протестить можно было
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как передать значение переменной в IFRAME в поле формы JS-ом из самой страницы? DeUre Общие вопросы Javascript 14 17.12.2013 16:37
Как в iframe с designmode=on отследить onClick ? negr78 Events/DOM/Window 2 24.10.2010 09:48
как открыть стр. в iframe -окне d4a1 Общие вопросы Javascript 1 03.09.2010 21:33
Как поместить iframe в угол страницы? xaknik Events/DOM/Window 4 31.07.2010 02:41
как можно создать iframe со скриптами GOll Общие вопросы Javascript 2 05.05.2009 11:32