Chrome 확장 프로그램을 만드는 방법을 배우려고합니다. 따라서이 질문은 코드 자체만큼이나 그 프로세스와 관련이 있습니다. https://developer.chrome.com/extensions/samples#search:.ime (아래 코드)Chrome 확장 프로그램 IME 샘플 오류
가 그럼 난 크롬에 탐색 :
는 여기에서 샘플 코드를 다운로드 // 확장 가능 개발자 모드, 그리고 부하가 압축 해제 된 확장 프로그램 클릭 - 그리고 아래의 두 파일과 디렉토리를 선택 .확장 프로그램을로드하면 main.js (console.log ("IME 초기화");) "익명 함수"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 확장 아키텍처 용 문서를 읽어야합니다. 먼저 발견 한 코드가 어떻게 작동하는지 이해하고 백그라운드 스크립트를 디버깅 할 때 실패 할 수있는 사항을 먼저 파악하십시오. –