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之外它不起作用吗?
最佳答案
textPosition
在getPosition()
函数之外没有作用域。将其添加为window
变量应该可以,但是不理想:
var textPosition = null;
function getPosition () {
if(!window.getSelection)
{
textPosition = document.selection.createRange().duplicate();
}
else
{
textPosition = window.getSelection();
}
}