Gua*_*xin 3 javascript firefox google-chrome
在firefox和chrome中window.getSelection用于获取文档中的当前选择,但是当前选择是在文本区域中,window.getSelection没有返回选择,而是返回文本区域本身。那么,如何在firefox和chrome中正确选择呢?
您需要获取文本区域中选定的文本吗?您可能需要选择 SelectionStart 和 SelectionEnd (Internet Explorer 中不存在,适用于 Firefox 和 Chrome)
Select some text below and then click the button:<br/>
<textarea id="myTextarea" rows="5" cols="30">
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
</textarea>
<button onclick="alert(getTextSelection())">alert text selection</button>
<script type="text/javascript">
function getTextSelection(){
var field = document.getElementById("myTextarea");
var startPos = field.selectionStart;
var endPos = field.selectionEnd;
var field_value = field.value;
var selectedText = field_value.substring(startPos,endPos);
return selectedText;
}
</script>
Run Code Online (Sandbox Code Playgroud)
如果有多个文本区域并且您希望在选择时获得输出:
Select some text in either textarea:<br/>
<textarea rows="5" cols="30" onselect="alert(getTextSelection(this))">
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
</textarea>
<textarea rows="5" cols="30" onselect="alert(getTextSelection(this))">
fate it seems
not without a sense of irony
</textarea>
<script type="text/javascript">
function getTextSelection(field){
var startPos = field.selectionStart;
var endPos = field.selectionEnd;
var selectedText = field.value.substring(startPos,endPos);
return selectedText;
}
</script>
Run Code Online (Sandbox Code Playgroud)
或者您仍然可以使用按钮但使用全局变量来完成此操作:
Select some text in either textarea and click the button:<br/>
<textarea rows="5" cols="30" onselect="window.selectedTextarea=this">
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
</textarea>
<textarea rows="5" cols="30" onselect="window.selectedTextarea=this">
fate it seems
not without a sense of irony
</textarea>
<button onclick="alert(getTextSelection())">alert text selection</button>
<script type="text/javascript">
// warning: global variable: dirty!!!
var selectedTextarea
function getTextSelection(){
var field = window.selectedTextarea;
var startPos = field.selectionStart;
var endPos = field.selectionEnd;
var selectedText = field.value.substring(startPos,endPos);
return selectedText;
}
</script>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5395 次 |
最近记录: |