Читать книгу Создание приложений для браузера Google Chrome - Алексей Алексеевич Крючков - Страница 1

Генератор паролей для браузера

Оглавление

В этой небольшой книжке будет показано как создавать простые приложения для браузера. Итак, приступим. Начнем мы с генератора паролей. В домашней папке создайте директорию с любым названием, например, pasgen. В ней будут располагаться все файлы нашего генератора. Сам генератор мы будем писать в виде приложения(расширения) для браузера Google Chrome. Наше будущее приложение будет способно генерировать пароли из пользовательских наборов символов и из встроенных в само приложение наборов. Писать мы будем с использованием простого блокнота или любого текстового редактора. Для начала создадим разметку интерфейса. Для этого в редакторе создайте файл с именем index.html и вставьте в него вот это:


<!DOCTYPE html>

<!–

To change this license header, choose License Headers in Project Properties.

To change this template file, choose Tools | Templates

and open the template in the editor.

–>

<html>

    <head>

        <title>Password generator</title>

        <meta charset="UTF-8">

        <link rel="stylesheet" href="styles.css">

    </head>

    <body>

          <img src="assets/imagespg.jpg" alt="pasgen" title="pasgen">

          <h2>Program for generating passwords</h2>

            <hr>

        <div class="form">

             <select class="s">

                 <option>letters</option>

                 <option>numbers</option>

                 <option>letters and numbers</option>

             </select>

            <label for="l">password length: </label> <input type="text" value="4" class="l" >  

             <label for="n">number of passwords: </label> <input type="text" value="1" class="n">

             <label for="us">your character set: </label> <input type="text" class="us" ><br>

            <p> When you finish typing, click "Create". To clear the field, click "Clear"</p>

            <input type="submit" value="Create" class="buttoncalc" > <input type="submit" value="Clear" class="buttonclear" >

            </div>

            <h4 class="alert"></h4>

            <textarea class="ta" rows="15" cols="60">

            </textarea>

  <script src="generator.js"></script>

    </body>

</html>


Сохраните этот файл в директории pasgen.

Если сейчас запустить этот код в каком-нибудь браузере, то мы увидим примерно вот это:


В верхнем левом углу вы видите надпись pasgen, здесь должно быть изображение растянутое по всей ширине. Как его добавить? Оно прописано в коде в теге img, но отсутствует в директории программы. Для добавления создайте в папке pasgen еще одну папку с именем assets, а в нее закиньте какую-нибудь картинку размером примерно 1000/123 и с именем imagespg.jpg. Также нам понадобятся иконки размером 16/16 и 128/128. Иконки должны иметь названия соответственно icon_16.png и icon_128.png и располагаться в той же папке assets.

Я использовал такие изображения:


Для шапки


Для иконки





Еще один нюанс. Чтобы у нас все выглядело как надо нам понадобиться каскадная таблица стилей. В том же редакторе создайте файлик под названием styles.css и заполните его вот этим содержимым:


 a{

   outline:none;

  }

  hr{

      width: 100%;

      size: 2px;

  }

  img{

      width: 100%;

      height: 123px;

  }


Сохраните файл стилей в папке pasgen.

После того как вы выполните все вышесказанное и запустите index.html вы увидите приблизительно следующее:


Но вот ведь незадача! Ничего не работает! Ну, конечно, кроме выпадающего списка и полей для ввода/вывода данных. Чтобы заработало все остальное нам нужен еще один файл. Тот самый где будет расписана вся логика нашей программы. В редакторе создайте файл с именем generator.js и вставьте туда следующий текст:


var l=document.querySelector(".l");

var n=document.querySelector(".n");

var us=document.querySelector(".us");

var s=document.querySelector(".s");

var buttonCalc=document.querySelector(".buttoncalc");

var buttonClear=document.querySelector(".buttonclear");

var alert=document.querySelector(".alert");

var ta=document.querySelector(".ta");

buttonCalc.addEventListener("click",showResult);

buttonClear.addEventListener("click",clear);

function showResult(){

    var pasLength=0;

    var pasQuantitet=0;

    var argument="";

    var pas="";

    var multiPas="";

    if (isNullInField(l.value)){

        alert.textContent="enter the length of the password";

        alert.style.color="red";

        l.focus();

        return;

    }

    if (isNullInField(n.value)){

        alert.textContent="enter the number of passwords";

        alert.style.color="red";

        n.focus();

        return;

    }

    pasLength=Number(l.value);

    pasQuantitet=Number(n.value);

    if(pasLength<1||pasLength>1000){

            alert.textContent="The password must be between 1 and 1000 characters in length";

            alert.style.color="red";

            l.focus();

            return;  

        }

         if(pasQuantitet<1||pasQuantitet>100){

             alert.textContent="The number of passwords must be from 1 to 100";

             alert.style.color="red";

             n.focus();

             return;

         }

         alert.textContent="";

          if(isNullInField(us.value)){

           argument=combinations(s.selectedIndex);

        }else{

           argument=us.value;

         }

         for(var i=0;i<pasQuantitet;i++){

             pas=passwordCreator(argument,pasLength);

             if(pas===""){

                 alert.textContent="Remove all spaces!";

                 alert.style.color="red";

                 us.focus();

                 return;

             }else{

                alert.textContent="";

             }

             multiPas+=pas+"\n";

         }

         ta.textContent=multiPas;

}

function passwordCreator(s,q){

      var  str="";

      var masSymbols=[];

                masSymbols=s.split("");

                for (var i=0;i<s.length;i++){

                    if (masSymbols[i]===" "){

                        return "";

                    }

                }

                for (var i=0;i<q;i++){

                    str+=masSymbols[Math.floor(Math.random() * s.length)]+"";

                }

        return str;

}

function combinations(m){

    var str;

    switch (m){

        case 0:

            str="abcdefghijklmnopqrstuvwxyz";

            break;

            case 1:

                str="0123456789";

                break;

                case 2:

                    str="abcdefghijklmnopqrstuvwxyz0123456789";

                    break;

                    default :

                        break;

    }

    return str;

}

function clear(){

    ta.textContent="";

}

function isNullInField(p){

      return p.trim().length===0;

     }


Сохранив новый файл в директории приложения и запустив наш генератор уже известным вам способом вы должны увидеть, что все заработало! Конечно, при условии, что вы все сделали правильно! Пока испытайте программку, разберитесь где здесь что и как работает, а потом перейдем к следующему этапу. Какому еще этапу? Ведь, вроде все работает, все запускается! Но вы ведь не забыли, что мы пишем приложение для браузера Chrome, правда?

Итак, продолжим! Нам потребуется закинуть в папку генератора еще два файла. Первый это background.js, в котором находится инструкция для отрисовки окна программы и что там следует отобразить, а также какие размеры окна задать по-умолчанию. Второй файл это manifest.json, в нем содержится информация о версии программы, ее описание, название, где находятся иконки и какой скрипт запускать. В нашем случае запускается background.js. Код background.js:


Конец ознакомительного фрагмента. Купить книгу
Создание приложений для браузера Google Chrome

Подняться наверх