summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/api.js6
-rw-r--r--ext/content.js5
-rw-r--r--ext/jp/api.js26
3 files changed, 28 insertions, 9 deletions
diff --git a/ext/api.js b/ext/api.js
index 0b92cde0..6e9d6f4f 100644
--- a/ext/api.js
+++ b/ext/api.js
@@ -17,6 +17,10 @@
*/
+function sendMessage(action, data, callback) {
+ window.chrome.runtime.sendMessage({action: action, data: data}, callback);
+}
+
function findTerm(text, callback) {
- window.chrome.runtime.sendMessage({action: 'define', text: text}, callback);
+ sendMessage('findTerm', {term: text}, callback);
}
diff --git a/ext/content.js b/ext/content.js
index 5ff0031e..72e45337 100644
--- a/ext/content.js
+++ b/ext/content.js
@@ -53,4 +53,7 @@ function onMouseDown(e) {
});
}
-window.addEventListener('mousedown', onMouseDown, false);
+
+(() => {
+ window.addEventListener('mousedown', onMouseDown, false);
+})();
diff --git a/ext/jp/api.js b/ext/jp/api.js
index 3f15056a..95c2f7e3 100644
--- a/ext/jp/api.js
+++ b/ext/jp/api.js
@@ -17,11 +17,22 @@
*/
+function onFindTerm({term}) {
+ return window.trans.findTerm(term);
+}
+
function onMessage(request, sender, callback) {
- switch (request.action.toLowerCase()) {
- case 'define':
- callback(window.trans.findTerm(request.text));
- break;
+ const {action, data} = request;
+
+ const handler = {
+ findTerm: onFindTerm
+ }[action];
+
+ if (handler !== null) {
+ const result = handler(data);
+ if (callback !== null) {
+ callback(result);
+ }
}
}
@@ -33,7 +44,8 @@ function onMessage(request, sender, callback) {
kanjidic: 'jp/data/kanjidic.json'
};
- window.trans = new Translator(res, function() {
- chrome.runtime.onMessage.addListener(onMessage);
- });
+ window.trans = new Translator(
+ res,
+ () => chrome.runtime.onMessage.addListener(onMessage)
+ );
})();