2016-06-01 18 views
0

Chrome拡張機能を構築する方法を学習しようとしています。だから、この質問はコード自体と同じように、そのプロセスと関係があります。Chrome拡張機能のIMEサンプルエラー

私はここからサンプルコードをダウンロード:https://developer.chrome.com/extensions/samples#search:.ime(以下コード)

その後、私はクロムに閲覧://拡張機能、有効な開発者モード、および負荷アンパック拡張子をクリックした - と、以下の2つのファイルとディレクトリを選択。

拡張機能をロードすると、main.js(console.log( "IMEの初期化");)の "anonymous function"の9行目にエラーが報告されます。

  1. なぜコードでエラーが発生しますか?
  2. エクステンションを正しくロードしましたか?(エラーが発生している可能性はありません)

  3. 違反行をコメントアウトすることでエラーを解決できますが、拡張機能は有効にならないようです。 どうすれば起動できますか?(私は何かが足りないのですか?)

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 
}); 
+0

エラーはどこに表示されますか?それはエラーではなく、ログだけであるようです。見つけ出すために背景をデバッグしてください。 –

+0

拡張機能を読み込むと、拡張機能の概要領域にエラーが表示されます。少し灰色の円。拡張機能はbackground.jsを使用しません。実際に、私はバックグラウンドファイルが何のために使われているのか分かりません。 – Brent

+0

マニフェストには背景ファイルがはっきりと表示されます。最初にChrome拡張機能アーキテクチャのドキュメントを読んで、見つかったコードがどのように機能するかを理解し、バックグラウンドスクリプトをデバッグするときに何が失敗するのかを理解できるようにしてください。 –

答えて

0

さて、ここでの問題は、(拡張子はIMEがあるということですキーボード)

有効にする追加の手順があります。

Settings | Language & input settings | Input Method | Select the newly installed IME and acknowledge the alert 

次に、新しい入力方法を選択するために、Ctrl + Alt +スペースを使用します。

すべての作業が必要です。

PS - 「エラー」は結局エラーではありませんでした。

+0

申し訳ありませんが、設定の下で「入力方法」はどこにありますか?私はおそらく目が見えないが、私は "言語と入力の設定"の下でこのような何も見ることができない、言語のリストのみ。 – SergGr

関連する問題