この問題は一種の問題です。だから、私は可能な限り徹底しようとします。Chrome拡張機能のJavaScriptファイル間でユーザーの入力を転送しますか?
これは、ウェブサイトとやり取りできるChrome拡張機能を作成する方法を学習する際にこれを行います。
これはユーザーが入力したものである入力フィールドを入力し、Webサイトの特定の部分をそのテキストに置き換えることです。私はIDがあり、getElementById
で簡単に編集できるので、Message Passingに記載されている「ワンタイムリクエスト」を使用しています。
ボタンワンクリックで簡単なワンタイムリクエスト文を置き換えるのは簡単ですが、ユーザーの入力を取得してドキュメントに挿入しようとすると問題が発生します。ここで
は私のコードです:
manifest.jsonを:
{
"manifest_version": 2,
"name": "document-editor-test",
"version": "1.0",
"permissions": [
"activeTab",
"cookies",
"storage"
],
"browser_action": {
"default_title": "Site Text Editor",
"default_popup": "menu.html"
}
}
content.js:
document.getElementById('button').addEventListener('click', function (evt) {
var inputText = document.getElementById('input').value;
var theValue = inputText;
chrome.storage.local.set({'value': theValue}, function(){
message('value saved');
});
chrome.tabs.executeScript({ file: 'replace.js' })
}, false);
replace.js:
var item = chrome.storage.local.get(null, function(){
message('Value gotten')
})
document.getElementById('simple').innerHTML = item;
menu.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<style>
body {width: 200px;}
#text{ font-size: 13px; text-align: center;}
</style>
<body>
<input id='input' type="text" placeholder="Text Here">
<button id='button' class='button button'>Ok</button>
<script src="content.js"></script>
</body>
</html>
私は値を保存し、ファイルを経由して、それを解析するために簡単に保存するスクリプトを使用しようと、それだけでundefined
をスクリプトプリントアウトできます。
入力値を文書に渡す方法は何ですか?
、参照してください:[私は非同期呼び出しからの応答を返すにはどうしますか?] (//stackoverflow.com/q/14220321) – Makyen