我有点困惑为什么这段代码不起作用!
HTML 标记:
<div id="diva"><b>Score</b> some <i>goals</i></div>
<div id="soda"></div>
JavaScript 代码:
function GetSelectedText () {
if (window.getSelection) { // all browsers, except IE before version 9
var range = window.getSelection ();
alert (range.toString ());
}
else {
if (document.selection.createRange) { // Internet Explorer
var range = document.selection.createRange ();
alert (range.text);
}
}
}
var butn = document.getElementById("soda");
butn.onclick = function(){
GetSelectedText();
}
最佳答案
您可能遇到的一个问题是,在某些浏览器(尤其是 IE)中,当按钮的 click
事件触发时,选择已被破坏。您可以通过使用 mousedown
事件来解决这个问题(它仍然允许销毁选择,但只能在事件被处理之后),或者通过 making the button unselectable 来解决。 .
我假设您的按钮不是实际的按钮输入,因为这种行为只发生在常规元素上。
演示:http://jsfiddle.net/L9bvU/1/
function GetSelectedText () {
if (window.getSelection) { // all browsers, except IE before version 9
var range = window.getSelection ();
alert (range.toString ());
}
else {
if (document.selection.createRange) { // Internet Explorer
var range = document.selection.createRange ();
alert (range.text);
}
}
}
span {
background-color: #ccc;
padding: 3px;
border: solid gray 1px;
}
*[unselectable="on"] {
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
/*
Introduced in IE 10.
See http://ie.microsoft.com/testdrive/HTML5/msUserSelect/
*/
-ms-user-select: none;
user-select: none;
}
<div contenteditable="true">Please select some of this text and press a button below</div>
<span onclick="GetSelectedText()">Click</span>
<span onmousedown="GetSelectedText()">Mousedown</span>
<span unselectable="on" onclick="GetSelectedText()">Click, unselectable</span>
关于javascript - 如何使用 JavaScript 获取选中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14553534/