mirror of
				https://github.com/open-webui/extension
				synced 2025-06-26 18:25:58 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
 | |
|   console.log(request, sender);
 | |
|   const id = sender.tab.id;
 | |
|   if (request.action == "getSelection") {
 | |
|     chrome.scripting
 | |
|       .executeScript({
 | |
|         target: { tabId: id, allFrames: true },
 | |
|         func: () => {
 | |
|           return window.getSelection().toString();
 | |
|         },
 | |
|       })
 | |
|       .then((res) => {
 | |
|         console.log(res);
 | |
|         sendResponse({ data: res[0]["result"] });
 | |
|       });
 | |
|   } else if (request.action == "writeText") {
 | |
|     function writeTextToInput(text) {
 | |
|       const activeElement = document.activeElement;
 | |
|       if (
 | |
|         activeElement &&
 | |
|         (activeElement.tagName === "INPUT" ||
 | |
|           activeElement.tagName === "TEXTAREA")
 | |
|       ) {
 | |
|         activeElement.value = `${activeElement.value}${text}`;
 | |
| 
 | |
|         if (activeElement.tagName === "TEXTAREA") {
 | |
|           activeElement.scrollTop = activeElement.scrollHeight;
 | |
|         }
 | |
|       } else {
 | |
|         console.warn("No active input or textarea field found.");
 | |
|       }
 | |
|     }
 | |
|     chrome.scripting.executeScript({
 | |
|       target: { tabId: id, allFrames: true },
 | |
|       func: writeTextToInput,
 | |
|       args: [request.text],
 | |
|     });
 | |
|     sendResponse({});
 | |
|   } else {
 | |
|     sendResponse({});
 | |
|   }
 | |
| 
 | |
|   return true;
 | |
| });
 |