Как да покажа изскачащ прозорец в разширението на chrome?

Трябва да покажа изскачащ прозорец в разширението на chrome. Понастоящем изскачащият прозорец се показва в нов прозорец, когато се щракне върху иконата на разширението.

Това, от което се нуждая, е когато щракна върху разширението, да се появи изскачащ прозорец точно под иконата на разширението. Точно като това (моля, проверете изскачащия прозорец в тази връзка ).

Моят изскачащ прозорец (userinfo.html) изисква влизане с потребителско име и парола. Когато потребителят въведе както потребителско име, така и парола и влезе, изскачащият прозорец трябва да се затвори и когато потребителят отново щракне върху иконата на разширението, той трябва да навигира до уебсайт. Как мога да направя това? Ето моят background.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
да, точно аз се опитвах да задам изскачащ метод. Но какво се случва е, че дори ако потребителят влезе и след това отново щракне върху иконата на разширението, изскачащият прозорец отново се показва. След като той въведе името и паролата си в изскачащия прозорец и кликва login. тогава изскачащият прозорец не трябва да се показва повече - person user3081557; 11.12.2013