Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как настроить браузер через код?

A B Ученик (204), открыт 1 неделю назад
const tc = gBrowser.tabContainer;
let tabs = [];
function onTabSelect(e) {
for (let i = 0; i < tabs.length; i++) {
if ( e.target .linkedPanel != tabs[i])
continue;
tabs.splice(i, 1);
break;
}
tabs.push( e.target .linkedPanel);
}
function onTabClose(e) {
let allTabs = Array.slice(tc.childNodes);
let allTabsLP = allTabs.map (function(tab) {
return tab.linkedPanel;
});
if ( e.target == gBrowser.selectedTab &&
tabs.length >= 1) {
let tab;
let lp = tabs[tabs.length - (tabs.length == 1 ? 1 : 2)];
for (let i = 0; i < allTabsLP.length; i++) {
if (lp != allTabsLP[i])
continue;
tab = allTabs[i];
break;
}
if (tab)
gBrowser.selectedTab = tab;
}
if (tabs.length != 0) {
tabs = tabs.filter(function(tab) {
return allTabsLP.indexOf(tab) != -1 ? true : false;
});
tabs.splice(tabs.length - (tabs.length == 1 ? 1 : 2), 1);
}
}
addEventListener("TabSelect", onTabSelect, false, tc);
addEventListener("TabClose", onTabClose, false, tc);
Дополнен 1 неделю назад
просто как элементарно открыть консоль?
2 ответа
666 Профи (589) 1 неделю назад
Этот код настраивает браузер Firefox, чтобы он запомнил последние открытые вкладки, даже после их закрытия.

Вот как он работает:

1. **Инициализация:**
- `const tc = gBrowser.tabContainer;`: Получает ссылку на контейнер вкладок браузера.
- `let tabs = [];`: Создает пустой массив, который будет хранить ссылки на последние открытые вкладки.

2. **Обработчик события "TabSelect"**:
- `function onTabSelect(e) {}`: Эта функция вызывается, когда пользователь переключает вкладку.
- `if ( e.target .linkedPanel != tabs[i]) continue;`: Проверяет, уже есть ли выбранная вкладка в массиве `tabs`.
- `tabs.splice(i, 1); break;`: Если вкладка уже есть, удаляет ее из массива.
- `tabs.push( e.target .linkedPanel);`: Добавляет выбранную вкладку в массив.

3. **Обработчик события "TabClose"**:
- `function onTabClose(e) {}`: Эта функция вызывается, когда пользователь закрывает вкладку.
- `let allTabs = Array.slice(tc.childNodes);`: Получает список всех вкладок.
- `let allTabsLP = allTabs.map (function(tab) { return tab.linkedPanel; });`: Преобразует список вкладок в список ссылок на их панели.
- `if ( e.target == gBrowser.selectedTab && tabs.length >= 1) {}`: Проверяет, была ли закрыта текущая вкладка и есть ли другие вкладки в массиве `tabs`.
- `let lp = tabs[tabs.length - (tabs.length == 1 ? 1 : 2)];`: Получает ссылку на панель предыдущей вкладки.
- `for (let i = 0; i < allTabsLP.length; i++) {}`: Ищет панель предыдущей вкладки в списке всех панелей.
- `if (tab) gBrowser.selectedTab = tab;`: Если панель найдена, переключается на нее.
- `if (tabs.length != 0) {}`: Проверяет, есть ли еще вкладки в массиве `tabs`.
- `tabs = tabs.filter(function(tab) { return allTabsLP.indexOf(tab) != -1 ? true : false; });`: Удаляет из массива `tabs` ссылки на закрытые вкладки.
- `tabs.splice(tabs.length - (tabs.length == 1 ? 1 : 2), 1);`: Удаляет ссылку на последнюю закрытую вкладку.

4. **Регистрация обработчиков событий:**
- `addEventListener("TabSelect", onTabSelect, false, tc);`: Регистрирует обработчик события "TabSelect" на контейнере вкладок.
- `addEventListener("TabClose", onTabClose, false, tc);`: Регистрирует обработчик события "TabClose" на контейнере вкладок.

**Как использовать этот код:**

1. Сохраните этот код в файл с расширением `.js`.
2. Откройте Firefox и перейдите в `about:config`.
3. Найдите настройку `extensions.enabledScopes`.
4. Установите значение этой настройки в `all`.
5. Перейдите в `about:debugging#/runtime/this-firefox`.
6. Нажмите на кнопку "Загрузить временный расширение".
7. Выберите файл `.js`, который вы сохранили.
8. Перезапустите Firefox.

Теперь, когда вы закроете вкладку, Firefox будет помнить ее и автоматически переключится на нее, когда вы снова откроете ту же вкладку.

**Важно:** Этот код работает только в Firefox.
A BУченик (204) 1 неделю назад
Куда его вводить?
666 Профи (589) A B, Ты имеешь в виду код, который мы обсуждали ранее для настройки браузера Firefox? Если да, то его нужно вводить не в браузер напрямую, а в специальный файл, который будет загружен как расширение. Вот пошаговая инструкция: 1. **Сохранение кода:** - Создайте новый текстовый файл и скопируйте в него код. - Сохраните файл с расширением `.js`, например, `my_extension.js`. 2. **Загрузка расширения:** - Откройте Firefox и введите в адресной строке `about:debugging#/runtime/this-firefox`. - Нажмите на кнопку "Загрузить временное расширение". - Выберите файл `my_extension.js`, который вы только что сохранили. 3. **Перезагрузка браузера:** - После загрузки расширения перезапустите Firefox.
A BУченик (204) 6 дней назад
загружаю расширение, ничего не происходит
666 Профи (589) A B, Судя по помтоу что ты даже не знал куда его вставлять, не удивительно.
Похожие вопросы