【问题标题】:Make DOM element effectively read-only使 DOM 元素有效地只读
【发布时间】:2010-09-15 15:49:57
【问题描述】:

我正在编写一个 .NET 表单控件来使用 MSHTML 编辑 HTML。我正在创建一些自定义元素,并希望使它们有效地只读。我想我可以通过关注整个元素来解决这个问题,只要焦点在该元素的任何位置输入,但 HtmlElement.Focus() 不会选择整个元素,而且我似乎无法捕获光标的输入.

另一种选择是在元素文本发生更改时引发事件(我希望在 KeyDown 上),但我也无法触发该事件。关于为什么我对事件行为的期望是错误的任何想法或替代实施建议?

【问题讨论】:

    标签: .net dom mshtml


    【解决方案1】:

    我发现设置属性:

    contentEditable=false
    

    导致所需的行为。

    【讨论】:

      【解决方案2】:

      如果您尝试将只读行为应用于用户输入控件,您可以尝试使用该控件的 @readonly 属性。否则,您还可以为适当的 UI 事件(keydown、mousedown)添加事件侦听器并阻止它们的默认行为(return false 或 event.returnValue = false)。至于自定义事件调度,您确实可以这样做。使用 IE 已知的事件名称。另一个提示可能是:注册一个 onchange 事件处理程序并将控件的值恢复为 defaultValue 的值(任何输入控件的属性)。

      希望一些想法会有所帮助。

      【讨论】:

        猜你喜欢
        • 2012-10-22
        • 1970-01-01
        • 2017-03-13
        • 1970-01-01
        • 1970-01-01
        • 2013-01-04
        • 2016-01-27
        • 2011-11-15
        • 2012-02-03
        相关资源
        最近更新 更多