Hướng dẫn get selected text javascript - lấy javascript văn bản đã chọn

Tôi hơi bối rối tại sao mã này không hoạt động!

Đánh dấu HTML:

Score some goals

Mã 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();
}

hỏi ngày 27 tháng 1 năm 2013 lúc 23:30Jan 27, 2013 at 23:30

Phát triển SmithDevelop SmithDevelop Smith

1261 Huy hiệu vàng3 Huy hiệu bạc13 Huy hiệu đồng1 gold badge3 silver badges13 bronze badges

9

Một vấn đề mà bạn có thể gặp phải là trong một số trình duyệt (đáng chú ý là IE), vào thời điểm các sự kiện ____99 của nút bị cháy, lựa chọn đã bị phá hủy. Thay vào đó, bạn có thể khắc phục điều này bằng cách sử dụng sự kiện

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();
}
0 thay thế (vẫn cho phép lựa chọn bị phá hủy, nhưng chỉ sau khi sự kiện được xử lý) hoặc bằng cách làm cho nút không thể chọn được.

Tôi giả sử nút của bạn không phải là một đầu vào nút thực tế, bởi vì hành vi này chỉ xảy ra cho các yếu tố thông thường.

Bản demo: 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;
}
Please select some of this text and press a button below
Click Mousedown Click, unselectable

Hướng dẫn get selected text javascript - lấy javascript văn bản đã chọn

Đã trả lời ngày 28 tháng 1 năm 2013 lúc 0:16Jan 28, 2013 at 0:16

Tim giảm xuốngTim Down

311K72 Huy hiệu vàng446 Huy hiệu bạc523 Huy hiệu Đồng72 gold badges446 silver badges523 bronze badges

4

function getSelectedText() {
    if (window.getSelection) {
        return window.getSelection();
    } 
    if (window.document.getSelection) {
        return window.document.getSelection();
    } 
    if (window.document.selection) {
        return window.document.selection.createRange().text;
    }
    return "";  
}

Highlight some of this text with the mouse select press button end release to fire the event.


Đây là cách của tôi. Bạn chỉ cần chọn văn bản cảnh báo kết thúc văn bản hoặc bất cứ điều gì khác. Có ai biết làm thế nào onmouse (sự kiện) được đặt cho toàn bộ tài liệu trong HTML và nó không phải được thêm trực tiếp vào trang HTML. Ở phía bên kia, vì chúng ta có thể thay đổi các yếu tố trong Firebug!>-Ví dụ
Does anyone know how OnMouse(event) set for the entire document in html, and it does not have to be directly added to html page.
To be on the other side, as we can change the elements in firebug!>-examples

Johnk

6.5077 Huy hiệu vàng46 Huy hiệu bạc71 Huy hiệu Đồng7 gold badges46 silver badges71 bronze badges

Đã trả lời ngày 20 tháng 2 năm 2014 lúc 15:59Feb 20, 2014 at 15:59

5

Vâng, có hai vấn đề với mã trên. -Bạn không thể đảm bảo rằng

var butn = document.getElementById("soda");

sẽ hoạt động vì nó có thể thực thi trước khi tài liệu được tải xong

-Khi bạn nhấp vào một phần tử khác không phải là nút, lựa chọn bị mất. Nếu bạn thay đổi div "soda" thành thì nó sẽ hoạt động:

Score some goals
This will NOT work

Tuy nhiên, tôi thực sự khuyên bạn nên nhìn vào jQuery vì những người khác ở đây đã khuyên; Nó sẽ làm cho bạn giống như dễ dàng hơn rất nhiều!

Đã trả lời ngày 28 tháng 1 năm 2013 lúc 0:25Jan 28, 2013 at 0:25

Stephen Byrnestephen ByrneStephen Byrne

7.2901 Huy hiệu vàng30 Huy hiệu bạc 50 Huy hiệu Đồng1 gold badge30 silver badges50 bronze badges

0