2012-01-12 75 views
2

我在插入符(http://code.google.com/p/jquery-at-caret/)上使用jquery插件實現了非常大的腳本邏輯,但現在當我完成時我意識到它只適用於Firefox和Chrome,它在Internet Explorer中不起作用。插入插件的jquery在IE中不起作用

我意識到函數「setCaretPosition」是在IE中不起作用的函數。

我只接受IE「o未定義」,你可以在下面的代碼片段中看到,這個 發生在79-89行的插件代碼中,但我無法弄清楚如何解決這個問題。

創建非常小的代碼片段只是複製此錯誤: http://www.mediafire.com/?xxt0medyci61690

+0

您正面臨哪個版本的IE問題? – 2012-01-12 07:09:22

回答

3

我已經在插件

setCaretPosition: function(pos) { 
    var f1, f2, o; 
    o = this[0]; 
    if (o.setSelectionRange) { 
    o.focus(); 
    return o.setSelectionRange(pos, pos); 
    } else if (o.createTextRange) { 
    f1 = function() { 
     return o.focus(); 
    }; 
    setTimeout(f1, 10); 
    f2 = function() { 
     var range; 
     range = o.createTextRange(); 
     range.collapse(true); 
     range.moveEnd('character', pos); 
     range.moveStart('character', pos); 
     return range.select(); 
    }; 
    setTimeout(f2, 20); 
    return pos; 
    } 
} 

請檢查一下,我已經在IE8,IE9 & Firefox的測試修改後的代碼。

+1

我現在在IE7和IE8中測試它,它工作。 感謝你節省我的時間。 – 2012-01-12 07:47:21

2

函數f(o,pos)導致問題。嘗試做出個別的功能,然後打電話給他們。有兩個函數定義爲同名f