簡體   English   中英

將文字插入Web擴展程序的可編輯字段中

[英]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

從可編輯文件中插入文本格式<div>或 textarea 進入數據庫</div><div id="text_translate"><p>我目前正在為我自己的網站開發一個個人項目,我正在嘗試添加將格式化文本存儲到數據庫中的功能。 到目前為止,我所做的是能夠將字體從斜體更改為粗體作為示例,但我完全不知道如何將其傳遞到數據庫。</p><pre> &lt;style&gt; #fake_textarea { width: 100%; height: 200px; border: 1px solid red; } #jBold { font-weigth: bold; } #jItalic{ font-style:italic; } &lt;/style&gt; &lt;script src="/scripts/snippet-javascript-console.min.js?v=1"&gt;&lt;/script&gt; &lt;body&gt; &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt; &lt;button id="jBold"&gt;&lt;b&gt;B&lt;/b&gt;&lt;/button&gt;&lt;button id="jItalic"&gt;&lt;i&gt;I&lt;/i&gt;&lt;/button&gt; &lt;div id='fake_textarea' contenteditable&gt; Select some text and click the button to make it bold... &lt;br&gt;Or write your own text &lt;/div&gt; &lt;script type="text/javascript"&gt; $(document).ready(function() { $('#jBold').click(function() { document.execCommand('bold'); }); }); &lt;/script&gt; &lt;script type="text/javascript"&gt; $(document).ready(function() { $('#jItalic').click(function() { document.execCommand('italic'); }); }); &lt;/script&gt; &lt;/body&gt; &lt;/html&gt;</pre><p> 示例工作: <a href="https://codepen.io/goldenowl/pen/KKdZQxY" rel="nofollow noreferrer">codepen</a></p></div>

[英]Insert text format from an editable <div> or textarea into the database

暫無
暫無

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

相關問題 從可編輯文件中插入文本格式<div>或 textarea 進入數據庫</div><div id="text_translate"><p>我目前正在為我自己的網站開發一個個人項目,我正在嘗試添加將格式化文本存儲到數據庫中的功能。 到目前為止,我所做的是能夠將字體從斜體更改為粗體作為示例,但我完全不知道如何將其傳遞到數據庫。</p><pre> &lt;style&gt; #fake_textarea { width: 100%; height: 200px; border: 1px solid red; } #jBold { font-weigth: bold; } #jItalic{ font-style:italic; } &lt;/style&gt; &lt;script src="/scripts/snippet-javascript-console.min.js?v=1"&gt;&lt;/script&gt; &lt;body&gt; &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt; &lt;button id="jBold"&gt;&lt;b&gt;B&lt;/b&gt;&lt;/button&gt;&lt;button id="jItalic"&gt;&lt;i&gt;I&lt;/i&gt;&lt;/button&gt; &lt;div id='fake_textarea' contenteditable&gt; Select some text and click the button to make it bold... &lt;br&gt;Or write your own text &lt;/div&gt; &lt;script type="text/javascript"&gt; $(document).ready(function() { $('#jBold').click(function() { document.execCommand('bold'); }); }); &lt;/script&gt; &lt;script type="text/javascript"&gt; $(document).ready(function() { $('#jItalic').click(function() { document.execCommand('italic'); }); }); &lt;/script&gt; &lt;/body&gt; &lt;/html&gt;</pre><p> 示例工作: <a href="https://codepen.io/goldenowl/pen/KKdZQxY" rel="nofollow noreferrer">codepen</a></p></div> 在內容可編輯的 div 中的光標處插入文本 編輯如何使用<a>標記</a>內的文本字段中的現有文本預填充x-editable彈出窗口 從文本輸入中插入 Web SQL 時出錯 Readgly Phonegap中的文本輸入字段是可編輯的 使用JavaScript DOM創建可編輯的文本字段 單擊按鈕使文本字段可編輯 有條件地設置可編輯或只讀文本字段 onclick 使用 javascript 的可編輯文本字段 自動調整jQuery中多行可編輯文本字段的大小
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM