Я написал расширение Chrome, чтобы при нажатии кнопки к текущей ссылке добавлялась правильная строка запроса. Например: '? Wcmmode = edit'.
Работает до некоторой степени, однако добавляет множители, как показано на скриншоте, если сильный запрос уже существует, и он нажимается снова или одна из трех других строк запроса clicked.
У меня есть четыре кнопки, добавляющие очень похожую строку запроса, как показано ниже, но они не должны добавляться как вторая строка запроса с '&'. Сначала они должны очистить предыдущее.
Пример изображения
// Disabled Mode
function handler_one() {
chrome.tabs.query({
currentWindow: true,
active: true
}, function(tab) {
const customParam = 'wcmmode=disabled';
const url = tab[0].url
const hashStart = (url.indexOf('#') === -1) ? url.length : url.indexOf('#');
const querySymbol = (url.indexOf('?') === -1) ? '?' : '&';
const newUrl = url.substring(0, hashStart) + querySymbol + customParam + url.substring(hashStart);
chrome.tabs.update(undefined, {
url: newUrl
});
});
};
// WCM Mode Edit
function handler_two() {
chrome.tabs.query({
currentWindow: true,
active: true
}, function(tab) {
const customParam = 'wcmmode=edit';
const url = tab[0].url
const hashStart = (url.indexOf('#') === -1) ? url.length : url.indexOf('#');
const querySymbol = (url.indexOf('?') === -1) ? '?' : '&';
const newUrl = url.substring(0, hashStart) + querySymbol + customParam + url.substring(hashStart);
chrome.tabs.update(undefined, {
url: newUrl
});
});
};
// WCM Mode Design
function handler_three() {
chrome.tabs.query({
currentWindow: true,
active: true
}, function(tab) {
const customParam = 'wcmmode=design';
const url = tab[0].url
const hashStart = (url.indexOf('#') === -1) ? url.length : url.indexOf('#');
const querySymbol = (url.indexOf('?') === -1) ? '?' : '&';
const newUrl = url.substring(0, hashStart) + querySymbol + customParam + url.substring(hashStart);
chrome.tabs.update(undefined, {
url: newUrl
});
});
};
// WCM Mode Preview
function handler_four() {
chrome.tabs.query({
currentWindow: true,
active: true
}, function(tab) {
const customParam = 'wcmmode=preview';
const url = tab[0].url
const hashStart = (url.indexOf('#') === -1) ? url.length : url.indexOf('#');
const querySymbol = (url.indexOf('?') === -1) ? '?' : '&';
const newUrl = url.substring(0, hashStart) + querySymbol + customParam + url.substring(hashStart);
chrome.tabs.update(undefined, {
url: newUrl
});
});
};