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之外它不起作用吗?

最佳答案

textPositiongetPosition()函数之外没有作用域。将其添加为window变量应该可以,但是不理想:

var textPosition = null;

function getPosition () {

    if(!window.getSelection)
    {
        textPosition = document.selection.createRange().duplicate();
    }
    else
    {
        textPosition = window.getSelection();
    }
}

10-07 17:39