Как показать всплывающее окно в расширении Chrome?

Мне нужно показать всплывающее окно в расширении Chrome. В настоящее время всплывающее окно отображается в новом окне при нажатии на значок расширения.

Что мне нужно, так это то, что когда я нажимаю на расширение, всплывающее окно должно отображаться чуть ниже значка расширения. Так же, как это (пожалуйста, проверьте всплывающее окно по этой ссылке ).

Мое всплывающее окно (userinfo.html) запрашивает логин с именем пользователя и паролем. Когда пользователь вводит имя пользователя и пароль, а также входит в систему, всплывающее окно должно закрыться, а когда пользователь снова щелкнет значок расширения, он должен перейти на веб-сайт. Как я могу это сделать? Вот мой фон.js

chrome.browserAction.onClicked.addListener(function(tab) {
 if(!localStorage.username){
   chrome.browserAction.setPopup({
    popup: "userinfo.html"
   });
 }
 else
   //navigate to website
});

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


person user3081557    schedule 11.12.2013    source источник
comment
Кстати, почему у вас browser_action определяется дважды?   -  person zambrey    schedule 11.12.2013
comment
Когда я определил только дважды, я получил то, что хотел, поэтому   -  person user3081557    schedule 11.12.2013
comment
Пожалуйста, не меняйте вопрос сам по себе. Люди, ответившие на исходный вопрос, будут выглядеть дураками без всякой причины.   -  person zambrey    schedule 11.12.2013


Ответы (1)


В действие браузера вы должны включить значение default_popup, которое указывает на файл HTML, который будет отображаться как всплывающее окно. В вашем случае это userinfo.html.

"browser_action": 
     {
   "default_icon": "icon.png",
   "default_popup": "popup.html"
    }

Дополнительная информация здесь: https://developer.chrome.com/docs/extensions/reference/browserAction/

person zambrey    schedule 11.12.2013
comment
Я вставил ваш код, но мне нужно, чтобы в первый раз, когда пользователь щелкает значок расширения, он должен увидеть всплывающее окно с запросом имени пользователя и пароля. Когда он вводит имя пользователя и пароль и нажимает «Войти», вверх должен быть закрыт. В следующий раз, когда он щелкнет значок, он должен перейти на веб-сайт. как я могу это сделать? пожалуйста, помогите мне - person user3081557; 11.12.2013
comment
Вы должны изучить метод setPopup и chrome.browserAction.onClicked.addListener на странице, которую я упомянул в ответе. Как только вы закончите с входом в систему во всплывающем окне, удалите всплывающее окно из browserAction и сохраните прослушиватель в коде, который будет иметь код для открытия новой вкладки на вашем веб-сайте. - person zambrey; 11.12.2013
comment
да, именно я пытался установить метод всплывающего окна. Но происходит следующее: даже если пользователь входит в систему, а затем снова щелкает значок расширения, всплывающее окно снова отображается. Как только он вводит свое имя и пароль во всплывающем окне. и нажимает «Войти». Затем всплывающее окно больше не должно отображаться - person user3081557; 11.12.2013