9

Đây không chỉ là gia hạn chrome google mà còn cho javascriptsự kiện lựa chọn văn bản javascript

Tôi viết một phần mở rộng chrome trong đó khi một văn bản được đánh dấu và một menu ngữ cảnh được hiển thị i hiển thị mục của tôi trong menu ngữ cảnh mà khi nhấp phải xử lý văn bản đã chọn

sau khi đưa lên menu ngữ cảnh và chọn tùy chọn của tôi tôi nhận được đối tượng rỗng với tất cả các giá trị số không và null

vì vậy tôi muốn thực hiện một số cơ chế đó sẽ đệm văn bản lựa chọn ngay khi chúng tôi er thả chuột sau khi chọn văn bản để sự kiện có thể kích hoạt và nếu có bất kỳ điều gì xảy ra, tôi có thể tạo bản sao của văn bản đã chọn trong biến toàn cầu và có thể xử lý sau

window.getSelected() đang hoạt động tốt khi tôi thử nghiệm với một mã thử nghiệm riêng biệt nhưng khi sử dụng với phần mở rộng của tôi, nơi tôi đưa lên menu ngữ cảnh tôi không thể nhận được văn bản đã chọn thực tế

văn bản đã chọn như tôi nhìn thấy trong các tài liệu sẽ là văn bản và html

gợi ý vui lòng ...


Ở đây tôi đã dán những gì tôi đang làm. Khi tôi bấm tiết kiệm lời nhắc nhở tôi nhận được một chuỗi rỗng

enter image description here

và đây là phần còn lại của mã


<script> 
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) { 


    switch(request.message) 
    { 
     case 'getSelection': 
      sendResponse({data: window.getSelection().toString()}); 
     break; 

     case 'createMenu': 
      seecon(); 
      break; 

     default: 
      sendResponse({data: 'Invalid arguments'}); 
     break; 
    } 
}); 

function conOnClick(info,tab) 
{ 

/* 
    chrome.extension.sendRequest(tab.id, {method: 'getSelection'}, function(response){ 
     alert(response.data); 
    }); 
*/ 
} 


//function seecon() 
{ 
var contexts = ["selection"]; 
for (var i = 0; i < contexts.length; i++) { 
    var context = contexts[i]; 
    var title = "Save to Word Reminder"; 
    var id = chrome.contextMenus.create({"title": title, "contexts":[context], 
             "onclick": conOnClick}); 

} 

} 



</script> 

Trả lời

5

Tôi chỉ đơn giản là sẽ thiết lập một sự kiện mouseUp trên tài liệu, và sau đó kiểm tra xem có bất kỳ lựa chọn nào (và nếu có, cho dù lựa chọn khác với lựa chọn trước đó).

+0

cho mỗi con chuột lên đó có thể có quá nhiều sự kiện ... hy vọng sẽ có một số loại sự kiện ... là có? –

+0

tôi có thể nghĩ đây là điểm tốt nhưng chưa thử nghiệm nó. và người dùng nếu có thể có một số lựa chọn thay thế thì điều đó cũng sẽ rất hay để ghi nhớ. vì vậy mong đợi nhiều lựa chọn thay thế hơn. –

+0

Không có sự kiện về thay đổi lựa chọn văn bản. Vì vậy, bạn cần phải làm điều đó như tôi đã đề xuất (có thể thêm vào một KeyUp). Nó có thể không hiệu quả, nhưng không có cách nào khác ... –

3

Bạn có thể nghe các thay đổi trong lựa chọn văn bản qua sự kiện selectionchange. Tôi tin rằng nó chỉ có sẵn trong trình duyệt WebKit.