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

textPositiongetPosition()在函数之外没有范围。将其添加为window应该可以工作的变量,但并不理想:

var textPosition = null;

function getPosition () {

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