Chrome拡張機能を構築する方法を学習しようとしています。だから、この質問はコード自体と同じように、そのプロセスと関係があります。Chrome拡張機能のIMEサンプルエラー
私はここからサンプルコードをダウンロード:https://developer.chrome.com/extensions/samples#search:.ime(以下コード)
その後、私はクロムに閲覧://拡張機能、有効な開発者モード、および負荷アンパック拡張子をクリックした - と、以下の2つのファイルとディレクトリを選択。
拡張機能をロードすると、main.js(console.log( "IMEの初期化");)の "anonymous function"の9行目にエラーが報告されます。
- なぜコードでエラーが発生しますか?
エクステンションを正しくロードしましたか?(エラーが発生している可能性はありません)
違反行をコメントアウトすることでエラーを解決できますが、拡張機能は有効にならないようです。 どうすれば起動できますか?(私は何かが足りないのですか?)
manifest.jsonを:
{
"name": "Test IME",
"version": "1.0",
"manifest_version": 2,
"description": "A simple IME that converts all keystrokes to upper case.",
"background": {
"scripts": ["main.js"]
},
"permissions": [
"input"
],
"input_components": [
{
"name": "Test IME",
"type": "ime",
"id": "test",
"description": "Test IME", // A user visible description
"language": "en-US", // The primary language this IME is used for
"layouts": ["us::eng"] // The supported keyboard layouts for this IME
}
]
}
main.js:
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
var ime_api = chrome.input.ime;
var context_id = -1;
console.log("Initializing IME");
ime_api.onFocus.addListener(function(context) {
console.log('onFocus:' + context.contextID);
context_id = context.contextID;
});
ime_api.onBlur.addListener(function(contextID) {
console.log('onBlur:' + contextID);
context_id = -1;
});
ime_api.onActivate.addListener(function(engineID) {
console.log('onActivate:' + engineID);
});
ime_api.onDeactivated.addListener(function(engineID) {
console.log('onDeactivated:' + engineID);
});
ime_api.onKeyEvent.addListener(
function(engineID, keyData) {
console.log('onKeyEvent:' + keyData.key + " context: " + context_id);
if (keyData.type == "keydown" && keyData.key.match(/^[a-z]$/)) {
chrome.input.ime.commitText({"contextID": context_id,
"text": keyData.key.toUpperCase()});
return true;
}
return false
});
エラーはどこに表示されますか?それはエラーではなく、ログだけであるようです。見つけ出すために背景をデバッグしてください。 –
拡張機能を読み込むと、拡張機能の概要領域にエラーが表示されます。少し灰色の円。拡張機能はbackground.jsを使用しません。実際に、私はバックグラウンドファイルが何のために使われているのか分かりません。 – Brent
マニフェストには背景ファイルがはっきりと表示されます。最初にChrome拡張機能アーキテクチャのドキュメントを読んで、見つかったコードがどのように機能するかを理解し、バックグラウンドスクリプトをデバッグするときに何が失敗するのかを理解できるようにしてください。 –