1
function getPosition () {

    if ($.browser.msie)
    {
        var textPosition = document.selection.createRange().duplicate();
    }
    else($.browser.mozilla || $.browser.opera || $.browser.safari) {
        var textPosition = window.getSelection();
    }
}



<div><textarea rows="3" cols="50" name="textarea1" id="textarea1" onChange="javascript:storeCursorPosition();" onClick="javascript:getPosition();" onKeyPress="javascript:getPosition();" onFocus="javascript:getPosition();"></textarea></div>

<input type="Button" onclick="javascript:if(textPosition.text == null){alert('No position selected')}else{alert('position selected')};">

上記のコードがありますが、Chrome、Safariなどでは機能しません。IEを除いて、常に「位置が選択されていません」というアラートが表示されます。IEでは、「位置」アラートが表示されます。

IE以外で動作しない理由はありますか?

4

1 に答える 1

2

textPosition関数外のスコープはありませんgetPosition()。の変数として追加することは機能するwindowはずですが、理想的ではありません。

var textPosition = null;

function getPosition () {

    if(!window.getSelection)
    {
        textPosition = document.selection.createRange().duplicate();
    }
    else 
    {
        textPosition = window.getSelection();
    }
}
于 2013-02-14T14:01:37.363 に答える