Faça elemento DOM efetivamente somente leitura
Pergunta
Eu estou escrevendo um controle de formulários NET para editar HTML utilizando MSHTML. Estou criando alguns elementos personalizados e quer torná-los efetivamente somente leitura. Pensei que poderia ir a este respeito, incidindo sobre todo o elemento qualquer foco tempo inserido em qualquer lugar esse elemento, mas o HtmlElement.Focus () não selecionar o elemento inteiro e eu não parecem ser capazes de entrada captura do cursor .
Outra opção seria elevar um evento sempre que o texto do elemento é alterado (em KeyDown espero), mas eu não posso começar esse evento ao fogo, também. Todas as ideias sobre por que as minhas expectativas sobre o comportamento do evento é sugestões erradas ou alternativos para a implementação?
Solução
Descobri que definindo o atributo:
contentEditable=false
Resultou no comportamento desejado.
Outras dicas
Você está tentando aplicar o comportamento de somente leitura a um controle de entrada do usuário, você pode tentar usar atributo @readonly desse controle. Caso contrário, você também pode adicionar ouvintes de eventos para eventos apropriados UI (keydown, mousedown) e impedir o seu comportamento padrão (false retorno, ou event.returnValue = false). Quanto aos eventos personalizados expedição, você pode realmente fazer isso. Use o nome do evento que é conhecido por IE. E outra dica poderia ser:. Registrar um manipulador de evento onchange e valor revert de controle para o valor de defaultValue (propriedade de quaisquer controles de entrada)
Hope algumas das idéias vai ajudar.