Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Где находится код обработки события? 
:(
    Опции темы
n199a
Дата 22.3.2015, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 17.11.2011

Репутация: нет
Всего: нет



Ниже прикреплены исходники расширения для Chrome - учет закрытых вкладок. Суть в том, что при нажатии на иконку высвечиваются имена страниц, которые были закрыты за сеанс.
Если мы зайдем в настройки (chrome-extension://emhohdghchmjepmigjojkehidlielknj/options.html), виден чекбокс "Отображать строку поиска и кнопки сверху". 
Вопрос: не могу найти в, где именно в js файле находится исполняемый код, который сработает по выбору чекбокса

Добавлено через 14 минут и 12 секунд
Я так понимаю, все решается через options.js:
Код

var settings = {};

function save() {
    if (document.getElementById('ctrlZ').checked){
        document.getElementById('hKey1').disabled=false;
        document.getElementById('hKey2').disabled=false;
    }else{
        document.getElementById('hKey1').disabled=true;
        document.getElementById('hKey2').disabled=true;
    }
    
    if(!document.getElementById('showTime').checked) {document.getElementById('sexyBack').style.display = "none";}
    else {document.getElementById('sexyBack').style.display = "block";}

    settings.showClear = document.getElementById('showClear').checked;
    settings.showBadge = document.getElementById('showBadge').checked;
    settings.showTime = document.getElementById('showTime').checked;
    settings.sexy = document.getElementById('sexy').checked;
    settings.showSearch = document.getElementById('showSearch').checked;
    settings.boldFont = document.getElementById('bold').checked;
    settings.saveHistory = document.getElementById('saveHistory').checked;
    settings.ctrlZ = document.getElementById('ctrlZ').checked;
    settings.menuTop = document.getElementById('menuTop').checked;
    settings.disableDClick = document.getElementById('disableDClick').checked;
    settings.tooltipText = document.getElementById('tooltipText').checked;
    settings.altBut = document.getElementById('altBut').checked;
    
    settings.searchMode = getRadioValue('searchIn');
    
    settings.wPop = parseInt(document.getElementById('wPop-value').textContent,10);
    settings.numLimit = parseInt(document.getElementById('numLimit-value').textContent,10);
    settings.numItems = document.getElementById("numItems").value;
    settings.numLines = parseInt(document.getElementById("numLines").value,10);
    
    settings.hkey1 = document.getElementById("hKey1").value;
    settings.hkey2 = document.getElementById("hKey2").value;

    localStorage.settings = JSON.stringify(settings);
    var closedTabIndex = JSON.parse(localStorage.ClosedTabIndex);
    if (closedTabIndex.length>settings.numLimit){
      trimTabs(settings.numLimit);
    }
    setBadge();
    updateIcon();
    if(settings.ctrlZ){informHotkeyChange();}
}

// Make sure the options gets properly initialized from the
// saved preference.
document.addEventListener('DOMContentLoaded', function () {
    settings = JSON.parse(localStorage.settings);
    
    forMac();
    
    document.getElementById('showClear').checked = settings.showClear;
    document.getElementById('showClear').addEventListener('click', save);

    document.getElementById('showBadge').checked = settings.showBadge;
    document.getElementById('showBadge').addEventListener('click', save);

    document.getElementById('showTime').checked = settings.showTime;
    document.getElementById('showTime').addEventListener('click', save);
    if(!settings.showTime) document.getElementById('sexyBack').style.display = "none";
    
    document.getElementById('sexy').checked = settings.sexy;
    document.getElementById('sexy').addEventListener('click', save);

    document.getElementById('showSearch').checked = settings.showSearch;
    document.getElementById('showSearch').addEventListener('click', save);

    document.getElementById('bold').checked = settings.boldFont;
    document.getElementById('bold').addEventListener('click', save);

    document.getElementById('saveHistory').checked = settings.saveHistory;
    document.getElementById('saveHistory').addEventListener('click', save);

    document.getElementById('ctrlZ').checked = settings.ctrlZ;
    document.getElementById('ctrlZ').addEventListener('click', save);
    document.getElementById('hKey1').addEventListener('change', save);
    document.getElementById('hKey2').addEventListener('change', save);
    selectItemByValue(document.getElementById("hKey1"),settings.hkey1);
    selectItemByValue(document.getElementById("hKey2"),settings.hkey2);
    if(!settings.ctrlZ){
        document.getElementById('hKey1').disabled=true;
        document.getElementById('hKey2').disabled=true;
    }

    document.getElementById('menuTop').checked = settings.menuTop;
    document.getElementById('menuTop').addEventListener('click', save);

    document.getElementById('disableDClick').checked = settings.disableDClick;
    document.getElementById('disableDClick').addEventListener('click', save);
    
    document.getElementById('tooltipText').checked = settings.tooltipText;
    document.getElementById('tooltipText').addEventListener('click', save);
    
    document.getElementById('altBut').checked = settings.altBut;
    document.getElementById('altBut').addEventListener('click', save);
    
    document.getElementById('searchIn'+settings.searchMode).checked = true;
    document.getElementById('searchIn1').addEventListener('click', save);
    document.getElementById('searchIn2').addEventListener('click', save);
    document.getElementById('searchIn3').addEventListener('click', save);
    
    var popWidth = document.getElementById('wPop');
    var popWidthValue = document.getElementById('wPop-value');
    popWidth.value = popWidthValue.textContent = parseInt(settings.wPop,10);
    popWidth.addEventListener('input', function(event) { popWidthValue.textContent = event.target.value;save();}, false);

    var limitValue = document.getElementById('numLimit-value');
    document.getElementById('numLimit').value = parseInt(Math.pow((((settings.numLimit-5)*Math.pow(600,5))/99994),0.2),10);
    limitValue.textContent = settings.numLimit;
    document.getElementById('numLimit').addEventListener('input', function(event) {limitValue.textContent = 5+  parseInt((Math.pow(event.target.value,5)/Math.pow(600,5)) * 99994,10);save();}, false);

    var widthValue = document.getElementById('numItems-value');
    document.getElementById('numItems').value = widthValue.textContent = settings.numItems;
    document.getElementById('numItems').addEventListener('input', function(event) {widthValue.textContent = event.target.value;save();}, false);

    var lines = document.getElementById('numLines');
    var linesValue = document.getElementById('numLines-value');
    lines.value = linesValue.textContent = parseInt(settings.numLines,10);

    if (lines.value==0) linesValue.textContent="No Limit";
    lines.addEventListener('input', function(event) { if (event.target.value==0) linesValue.textContent="No Limit"; else linesValue.textContent = event.target.value;save();}, false);

    document.getElementById('resetButton').addEventListener('click', clearMemory);

    document.getElementById('searchOpt').title = chrome.i18n.getMessage("opt_func_opt1_tooltip");
    document.getElementById('ctrlzOpt').title = chrome.i18n.getMessage("opt_func_opt5_tooltip");
});

function trimTabs(tablimit){
    // Trim off the excess saved closed tabs
    var closedTabIndex = JSON.parse(localStorage.ClosedTabIndex);
    var noToDelete = closedTabIndex.length - tablimit;
    for(var i = 0; i<noToDelete; i++){
        if(localStorage["ClosedTab-"+closedTabIndex[i]]){
            delete localStorage["ClosedTab-"+closedTabIndex[i]];
            closedTabIndex.splice(closedTabIndex.indexOf(closedTabIndex[i]),1);
        }
    }
    localStorage.ClosedTabIndex = JSON.stringify(closedTabIndex);
}

function informHotkeyChange(){
    var tabListIndex = JSON.parse(localStorage.TabListIndex);
    for(var i = tabListIndex.length-1; i>=0; i--){
        chrome.tabs.sendMessage(tabListIndex[i], {key1:settings.hkey1,key2:settings.hkey2});
    }
}

function getRadioValue(radioGroup){
    var rGrp = document.getElementsByName(radioGroup);
    for(var i = 0, j = rGrp.length; i < j; i++){
        if (rGrp[i].checked){
            return rGrp[i].value;
        }
    }
}

function selectItemByValue(elmnt, value){
    for(var i=0; i < elmnt.options.length; i++){
      if(elmnt.options[i].value == value) elmnt.selectedIndex = i;
    }
}

function forMac() {
    //if a Mac...
    if (navigator.appVersion.indexOf("Mac")!=-1){
        var apple=document.createElement("option");
        apple.value="91";
        apple.textContent = "⌘";
        document.getElementById('hKey1').appendChild(apple);
    }
}

function clearMemory(){
    var sure=confirm(chrome.i18n.getMessage("opt_resetbtn_popupMsg"));
    if (sure==true) resetData();
}

Сразу возникает вопрос, где можно прочитать об методах, элементах?

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  1.3.4.1_0.rar 35,01 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0940 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.