Javascript 如何为输入元素添加原型?

Javascript 如何为输入元素添加原型?,javascript,internet-explorer,dom,prototype,Javascript,Internet Explorer,Dom,Prototype,我有一个输入元素: <input type="text" id="t" value="abcdefghij" /> 我需要的功能是: function GetSelectionStart(o) { if (o.createTextRange) { var r = document.selection.createRange().duplicate() r.moveEnd('character', o.value.length)

我有一个输入元素:

<input type="text" id="t" value="abcdefghij" />
我需要的功能是:

function GetSelectionStart(o) {
    if (o.createTextRange) {
        var r = document.selection.createRange().duplicate()
        r.moveEnd('character', o.value.length)
        if (r.text == '') return o.value.length
        return o.value.lastIndexOf(r.text)
    } else return o.selectionStart;
}

function GetSelectionEnd(o) {
    if (o.createTextRange) {
        var r = document.selection.createRange().duplicate()
        r.moveStart('character', -o.value.length)
        return r.text.length
    } else return o.selectionEnd;
}
如何将此“属性”添加到IE上的
?有可能吗?

您需要扩展接口,如下所示:

HTMLInputElement.prototype.selectionStart = …

然而,JavaScript专家认为这是一个.

首先,尝试扩展宿主对象在原理和实践上都是一个坏主意。像DOM元素这样的宿主对象可以做他们喜欢做的事情;特别是,他们没有义务支持您尝试做的事情,在IE中,这些问题也回答了这一点:


我只是想修复该死的IE。那些功能我只是从某篇文章中复制的。感谢您指出这些缺陷并提供可靠的功能。我想我别无选择,我将不得不使用一种方法来代替……它们是相关的,但它们不是同一个问题。
HTMLInputElement.prototype.selectionStart = …