За последние 24 часа нас посетили 22365 программистов и 1014 роботов. Сейчас ищут 679 программистов ...

возможно ли передать фокус в <p>сюда</p>?

Тема в разделе "JavaScript и AJAX", создана пользователем oleg_, 22 окт 2016.

  1. oleg_

    oleg_ Активный пользователь

    С нами с:
    28 ноя 2012
    Сообщения:
    105
    Симпатии:
    2
    Всем привет

    Код (Javascript):
    1. iframe.body
    2. <div></div>
    3. <p></p>
    iframe.body.focus(); передает фокус в <div></div> (в начало)
    iframe.body.lastChild.focus(); не передает никуда
    как передать фокус <p>сюда</p>?
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    Должно работать. А ошибка в консоли браузера есть?
     
  3. oleg_

    oleg_ Активный пользователь

    С нами с:
    28 ноя 2012
    Сообщения:
    105
    Симпатии:
    2
    нету, все чисто
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Может, все дело в том, что элемент <p> в принципе не фокусируемый? :)
    Что должно произойти по-твоему? У него же нет таб-индекса. Это просто абзац. Абзацы не ловят фокус. Поля ввода ловят, ссылки ловят, и, если память не изменяет, якори ловят. Но с последними могу ошибаться.
     
  5. oleg_

    oleg_ Активный пользователь

    С нами с:
    28 ноя 2012
    Сообщения:
    105
    Симпатии:
    2
    ну я подозреваю что то такое, пробовал <p tabindex="-1">, работает, но фокус не ставится
    я и спрашиваю поэтому, куда фокус поставить, на пробел? как?
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
    :first-of-type
    :last-of-type

    по css у можно отловить как например:
    $( 'p:last-of-type' ).html();
    <p>1</p>
    <p>2</p>
     
  7. oleg_

    oleg_ Активный пользователь

    С нами с:
    28 ноя 2012
    Сообщения:
    105
    Симпатии:
    2
    пока буду вкуривать совет, еще вопросец, почему в ие и хроме readyState complete а в фф interactive?
     
  8. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    @oleg_ может плагин-расширение какое-нибудь грузит что-нибудь на страницу. У меня так антивирус делает.
     
  9. oleg_

    oleg_ Активный пользователь

    С нами с:
    28 ноя 2012
    Сообщения:
    105
    Симпатии:
    2
    на разных компах компах вин линукс, одинаково
    начал копать встретил такое
    Код (Javascript):
    1. iframeDoc.readyState == 'complete'|| iframeDoc.readyState == 'interactive'
    видимо по разному работают
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Окей, повторю прямо - тэг <p> не может поймать фокус, потому что он не интерактивен и не рассчитан на взаимодействие с пользователем. Фокус и блюр - это события, отвечающие за перевод интерактивного элемента из режима ожидания в режим взаимодействия и обратно.
     
  11. oleg_

    oleg_ Активный пользователь

    С нами с:
    28 ноя 2012
    Сообщения:
    105
    Симпатии:
    2
    Тогда внутри iframe и нет больше интерактивных элементов. Остается засунуть его в iframe.document.body.focus(); после чего передвинуть его в конец текста....
     
  12. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Похоже на проблему XY. @oleg_ , а какую проблему ты пытаешься решить? Сдается мне, ты просто делаешь что-то не так. Хочешь, чтобы страница перескакивала по скроллу до твоего фрейма?
     
  13. oleg_

    oleg_ Активный пользователь

    С нами с:
    28 ноя 2012
    Сообщения:
    105
    Симпатии:
    2
    Кнопку "цитировать" для комментария делаю. Там ckeditor в iframe. Хочу сделать что бы когда цитируемый текст вставился в ckeditor курсор вставлялся после текста. Да и вообще, манипулировать курсором в окне ckeditor и для других задач пригодится. Вот что в ходе экспериментов выяснилось: вы правильно сказали, там нет элементов в которые можно передать фокус. Если вставить в iframe например текстареа, то все работает. Однако это не выход. Фокус передается только в iframe.body, и становится в начало. Никакие ухищрения, которые работают для основного window (например
    inputObject.setSelectionRange(end,end); inputObject.focus() во фрейме не работают(или я пока не нашел что работает).
     
    #13 oleg_, 24 окт 2016
    Последнее редактирование: 24 окт 2016
  14. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    А в чем проблема фокусить сам ckeditor? На его поле ввода.
     
  15. oleg_

    oleg_ Активный пользователь

    С нами с:
    28 ноя 2012
    Сообщения:
    105
    Симпатии:
    2
    не знаю как, вставляю цитату
    Код (Javascript):
    1. body.innerHTML='2222222222'
    а дальше кроме
    Код (Javascript):
    1. body.focus();
    ничего придумать пака не могу
     
  16. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    У ckeditor нет поля ввода? Есть. Что мешает обращаться к нему через id/class/tagname?
     
  17. oleg_

    oleg_ Активный пользователь

    С нами с:
    28 ноя 2012
    Сообщения:
    105
    Симпатии:
    2
    нету, непосредственно в body все делается
    вот на место 1111111 хочу курсор ставить
    cke.png
     
    #17 oleg_, 24 окт 2016
    Последнее редактирование: 24 окт 2016
  18. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Что-то какой-то индусский трэш. Может проще поставить другой редактор?
     
  19. oleg_

    oleg_ Активный пользователь

    С нами с:
    28 ноя 2012
    Сообщения:
    105
    Симпатии:
    2
    Это штатный редактор drupal, более того считается самым лучшим, менять его, это штаны через голову. Буду пробовать jquery, подскажите как функцию jquery $() вызвать и js function(){.....}
     
  20. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Просто взять и вызвать. Это обычная функция.
     
  21. oleg_

    oleg_ Активный пользователь

    С нами с:
    28 ноя 2012
    Сообщения:
    105
    Симпатии:
    2
    ясно спасибо