Запретить вставку из буфера

Тема в разделе "Другие языки", создана пользователем stasdre, 1 мар 2010.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. stasdre

    stasdre Постоялец

    Регистр.:
    15 янв 2010
    Сообщения:
    125
    Симпатии:
    18
    Подскажите пожалуйста. Есть поле:

    HTML:
    
    <input name='text' type='text' value='' />
    
    как можно запретить вставлять значение из буфера для этого поля?:nezn:
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    По нормальному никак. Можно конечно мониторить нажатие ctrl + v, но ничто не помешает вставить через контекстное меню.
     
  3. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
  4. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    venetu, есть разные горбыли. Нормального кроссбраузерного решения нет (по крайней мере пока не встречал).
     
  5. stasdre

    stasdre Постоялец

    Регистр.:
    15 янв 2010
    Сообщения:
    125
    Симпатии:
    18
    Тогда другой вариант если предыдущий сделать не возможно.

    Есть два поля
    HTML:
    
    <input name='text' type='text' value='' />
    <input name='text2' type='text' value='' />
    
    Как тогда запретить копировать текст из
    HTML:
    
    <input name='text' type='text' value='' />
    
     
  6. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    stasdre, вот запрет на копирование:
    <input name='text' type='text' value='' disabled=1 />


    Да, я знаю, ты пурист и поклонник чистых методов. Я люблю быстрые грязные хаки - абы хоть как-то работало, и пусть все плюются.


    stasdre пусть сам выбирает, что ему лучше - хорошее правильное решение "так сделать нельзя" или плохое неправильное "в большинстве случаев прокатывает". Прокатывает действительно не везде - например, можно яваскрипт отключить.
     
  7. stasdre

    stasdre Постоялец

    Регистр.:
    15 янв 2010
    Сообщения:
    125
    Симпатии:
    18
    Данный метод просто запрещает ввод вообще чего либо в данное поле. А мне надо чтобы можно было вписать в это поле но запретить копироват от туда текст.
     
  8. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Читать умеем?
    Нет нормального способа.

    Сложно назвать рабочим то, что работает через раз и через один браузер :D
     
  9. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    Тогда только яваскрипт. OnKeyDown проверяешь Shift+Ins и Ctrl+V, OnMouseDown - правую кнопку мыши (запрещаешь контекстное меню). Работает во всех бровзерах где есть яваскрипт и нормальная event-модель (даже в 5м IE). Не работает если отключен или вырезан яваскрипт.

    Без использования яваскрипта задача, похоже, действительно не разрешима.
     
  10. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    правый клик не работает в опере :p
    именно по этому в опере нельзя создать собственного контекстного меню.
     
Статус темы:
Закрыта.