簡體   English   中英

在Chrome擴展程序內容腳本中執行代碼時,將文本插入光標所在的textarea /文本輸入中

[英]Insert text in a textarea/text input at the cursor, when code is being executed in a Chrome Extension content script

我正在制作一個Chrome擴展程序,當選擇上下文菜單項時,該擴展程序會將一些存儲的,經常使用的文本片段放入文本輸入和文本區域中。

目前設置工作的方式,內容腳本中有一行內容負責插入:
document.activeElement.value =“插入文本” + document.activeElement.value;

這會將文本置於所選的任何文本框/可編輯區域的開頭。 希望將文本插入到用戶當前在文本框中單擊的位置,而不是僅在開始時。

我已經看到了許多在光標/插入符號處輸入文本的示例,但是還無法從內容腳本中使它們正常工作。 由於這不需要與跨瀏覽器兼容,因此使此文本插入光標的最簡單方法是什么?

謝謝你的幫助

解決方案使用的代碼位於http://www.sitepoint.com/forums/showthread.php?t=709013

更改該腳本的前幾行,以便它們讀取

function insertAtCaret(text) {
    var txtarea = document.activeElement;

然后,JavaScript不需要聲明的所選元素的ID。

內容腳本以及

chrome.extension.onRequest.addListener(
    function(request, sender, sendResponse) {
insertAtCaret(request.text);
if (request.greeting == "hello")
   sendResponse({farewell: "laters"});
else
  sendResponse({farewell: "byebye"}); // snub them.    
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM