[英]Insert text into editable field from web extension
我正在開發WebExtension,一個功能是在可編輯字段上具有一個上下文菜單項,選中該菜單項將打開一個確認窗口,然后將值粘貼到可編輯字段中。
目前,我有上下文菜單項可以打開窗口,但是要在可編輯字段中插入一些文本非常困難。 到目前為止,我管理的最接近的是:
let code = 'setTimeout(function() {document.designMode = "on";document.execCommand("insertText", false, "apple");document.designMode = "off";}, 1000);';
browser.tabs.executeScript(parent_tab_id, {"code": code});
window.close()
整個designMode
事情似乎有點不可思議,並且代碼無法非常可靠地工作。 有一個更好的方法嗎? 問題的根源在於,我看不到找到被單擊的可編輯字段的任何方法。
我會這樣做:
let code = 'document.activeElement.value = "apple";';
browser.tabs.executeScript(parent_tab_id, {"code": code});
順便說一下,后台腳本內的window.close是browser.tabs.remove(currentTabId)。 您可以通過查詢標簽API(示例2)來獲取當前標簽ID: https : //developer.mozilla.org/zh-CN/Add-ons/WebExtensions/API/tabs/query#examples
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.