summaryrefslogtreecommitdiff
path: root/ext/bg/js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/bg/js')
-rw-r--r--ext/bg/js/audio.js2
-rw-r--r--ext/bg/js/context.js39
-rw-r--r--ext/bg/js/deinflector.js2
-rw-r--r--ext/bg/js/profile-conditions.js22
-rw-r--r--ext/bg/js/search.js2
-rw-r--r--ext/bg/js/translator.js20
6 files changed, 56 insertions, 31 deletions
diff --git a/ext/bg/js/audio.js b/ext/bg/js/audio.js
index 3efcce46..cd42a158 100644
--- a/ext/bg/js/audio.js
+++ b/ext/bg/js/audio.js
@@ -128,7 +128,7 @@ function audioUrlNormalize(url, baseUrl, basePath) {
if (url[0] === '/') {
if (url.length >= 2 && url[1] === '/') {
// Begins with "//"
- url = baseUrl.substr(0, baseUrl.indexOf(':') + 1) + url;
+ url = baseUrl.substring(0, baseUrl.indexOf(':') + 1) + url;
} else {
// Begins with "/"
url = baseUrl + url;
diff --git a/ext/bg/js/context.js b/ext/bg/js/context.js
index 3fb27f0d..b288a79a 100644
--- a/ext/bg/js/context.js
+++ b/ext/bg/js/context.js
@@ -26,26 +26,26 @@ function showExtensionInfo() {
}
function setupButtonEvents(selector, command, url) {
- const node = $(selector);
- node.on('click', (e) => {
+ const node = document.querySelector(selector);
+ node.addEventListener('click', (e) => {
if (e.button !== 0) { return; }
apiCommandExec(command, {newTab: e.ctrlKey});
e.preventDefault();
- })
- .on('auxclick', (e) => {
+ }, false);
+ node.addEventListener('auxclick', (e) => {
if (e.button !== 1) { return; }
apiCommandExec(command, {newTab: true});
e.preventDefault();
- });
+ }, false);
if (typeof url === 'string') {
- node.attr('href', url);
- node.attr('target', '_blank');
- node.attr('rel', 'noopener');
+ node.href = url;
+ node.target = '_blank';
+ node.rel = 'noopener';
}
}
-$(document).ready(utilAsync(() => {
+window.addEventListener('DOMContentLoaded', () => {
showExtensionInfo();
apiGetEnvironmentInfo().then(({browser}) => {
@@ -64,13 +64,18 @@ $(document).ready(utilAsync(() => {
url: window.location.href
};
apiOptionsGet(optionsContext).then(options => {
- const toggle = $('#enable-search');
- toggle.prop('checked', options.general.enable).change();
- toggle.bootstrapToggle();
- toggle.change(() => apiCommandExec('toggle'));
+ const toggle = document.querySelector('#enable-search');
+ toggle.checked = options.general.enable;
+ toggle.addEventListener('change', () => apiCommandExec('toggle'), false);
+
+ const toggle2 = document.querySelector('#enable-search2');
+ toggle2.checked = options.general.enable;
+ toggle2.addEventListener('change', () => apiCommandExec('toggle'), false);
- const toggle2 = $('#enable-search2');
- toggle2.prop('checked', options.general.enable).change();
- toggle2.change(() => apiCommandExec('toggle'));
+ setTimeout(() => {
+ for (const n of document.querySelectorAll('.toggle-group')) {
+ n.classList.add('toggle-group-animated');
+ }
+ }, 10);
});
-}));
+});
diff --git a/ext/bg/js/deinflector.js b/ext/bg/js/deinflector.js
index ce4b2961..e2fb7461 100644
--- a/ext/bg/js/deinflector.js
+++ b/ext/bg/js/deinflector.js
@@ -44,7 +44,7 @@ class Deinflector {
results.push({
source,
- term: term.slice(0, -kanaIn.length) + kanaOut,
+ term: term.substring(0, term.length - kanaIn.length) + kanaOut,
rules: rulesOut,
definitions: [],
reasons: [reason, ...reasons]
diff --git a/ext/bg/js/profile-conditions.js b/ext/bg/js/profile-conditions.js
index 5daa904e..8272e5dd 100644
--- a/ext/bg/js/profile-conditions.js
+++ b/ext/bg/js/profile-conditions.js
@@ -17,6 +17,26 @@
*/
+function _profileConditionTestDomain(urlDomain, domain) {
+ return (
+ urlDomain.endsWith(domain) &&
+ (
+ domain.length === urlDomain.length ||
+ urlDomain[urlDomain.length - domain.length - 1] === '.'
+ )
+ );
+}
+
+function _profileConditionTestDomainList(url, domainList) {
+ const urlDomain = new URL(url).hostname.toLowerCase();
+ for (const domain of domainList) {
+ if (_profileConditionTestDomain(urlDomain, domain)) {
+ return true;
+ }
+ }
+ return false;
+}
+
const profileConditionsDescriptor = {
popupLevel: {
name: 'Popup Level',
@@ -69,7 +89,7 @@ const profileConditionsDescriptor = {
transform: (optionValue) => optionValue.split(/[,;\s]+/).map(v => v.trim().toLowerCase()).filter(v => v.length > 0),
transformReverse: (transformedOptionValue) => transformedOptionValue.join(', '),
validateTransformed: (transformedOptionValue) => (transformedOptionValue.length > 0),
- test: ({url}, transformedOptionValue) => (transformedOptionValue.indexOf(new URL(url).hostname.toLowerCase()) >= 0)
+ test: ({url}, transformedOptionValue) => _profileConditionTestDomainList(url, transformedOptionValue)
},
matchRegExp: {
name: 'Matches RegExp',
diff --git a/ext/bg/js/search.js b/ext/bg/js/search.js
index 20d0c58c..b4731e6a 100644
--- a/ext/bg/js/search.js
+++ b/ext/bg/js/search.js
@@ -210,7 +210,7 @@ class DisplaySearch extends Display {
const match = /[\*\uff0a]+$/.exec(query);
if (match !== null) {
details.wildcard = true;
- query = query.substr(0, query.length - match[0].length);
+ query = query.substring(0, query.length - match[0].length);
}
const valid = (query.length > 0);
diff --git a/ext/bg/js/translator.js b/ext/bg/js/translator.js
index 583d6e31..e27cbdff 100644
--- a/ext/bg/js/translator.js
+++ b/ext/bg/js/translator.js
@@ -327,22 +327,22 @@ class Translator {
const deinflections = [];
for (let i = text.length; i > 0; --i) {
- const textSlice = text.slice(0, i);
- deinflections.push(...this.deinflector.deinflect(textSlice));
+ const textSubstring = text.substring(0, i);
+ deinflections.push(...this.deinflector.deinflect(textSubstring));
}
return deinflections;
}
- getDeinflections2(text, text2) {
+ getDeinflections2(text1, text2) {
const deinflections = [];
- for (let i = text.length; i > 0; --i) {
- const textSlice = text.slice(0, i);
- const text2Slice = text2.slice(0, i);
- deinflections.push(...this.deinflector.deinflect(textSlice));
- if (textSlice !== text2Slice) {
- deinflections.push(...this.deinflector.deinflect(text2Slice));
+ for (let i = text1.length; i > 0; --i) {
+ const text1Substring = text1.substring(0, i);
+ const text2Substring = text2.substring(0, i);
+ deinflections.push(...this.deinflector.deinflect(text1Substring));
+ if (text1Substring !== text2Substring) {
+ deinflections.push(...this.deinflector.deinflect(text2Substring));
}
}
@@ -516,6 +516,6 @@ class Translator {
static getNameBase(name) {
const pos = name.indexOf(':');
- return (pos >= 0 ? name.substr(0, pos) : name);
+ return (pos >= 0 ? name.substring(0, pos) : name);
}
}