Браузер независимый readonly?

Есть ли способ в HTML, JavaScript или jQuery сделать элемент input "только для чтения", т.е.

  • пользователь может его прочитать
  • пользователь может скопировать его содержимое в буфер обмена
  • пользователь не может его изменить.

который будет работать во всех браузерах? Я знаю, что есть атрибут "readonly", но он не поддерживается во всех браузерах.

Я не спрашиваю о аспектах безопасности, просто об использовании пользователями.

Ответ 1

если вы используете jQuery (как вы помещаете в тег), это кросс-браузер:

$(...your input ...).attr('readonly','readonly'); 

edit: from http://www.w3schools.com/tags/att_input_readonly.asp

Атрибут readonly поддерживается в все основные браузеры.

Ответ 2

Один из способов - подделать его:

<p class="fake_input">The readonly Value</p>
<input type="hidden" name="real_input" value="The readonly Value" />

И если вы хотите, чтобы это выглядело как заблокированное поле ввода, вы могли бы стилизовать его и т.д.

Просто помните, что люди могут менять скрытые входы волей-неволей.

Ответ 3

Хотя атрибут readOnly нечувствителен к регистру в html, он должен быть записан "readOnly" в js. Он работает, когда он напрямую назначается во всех браузерах из IE6 и включает IE6, но способ, которым вы его назначаете, может быть специфичным для браузера.

element.setAttribute('readOnly', 'readOnly') не работает в старых браузерах, но element.readOnly = 'readOnly' (или любое правдивое значение) работает x-браузер.