Exibir diálogo da extensão do Chrome
-
22-09-2019 - |
Pergunta
Estou tentando exibir uma caixa de diálogo JavaScript modal no Chrome quando um usuário cria um marcador. No entanto, depois de tentar o fechamento e o SimpleModal+JQuery, não consigo obter uma caixa de diálogo para aparecer. Isso é uma restrição de extensões no Chrome, ou estou fazendo algo muito errado? (Ainda estou aprendendo JavaScript, então minha falta de entendimento poderia muito bem ser a razão.)
Aqui está o meu código usando o fechamento. Isso entra na função, então está funcionando bem. Alguma sugestão? Obrigado!
<html>
<head>
<script src="./lib/closure-library/closure/goog/base.js"></script>
<script type="text/javascript" src="./lib/closure-library/closure/goog/deps.js"></script>
<script>goog.require('goog.ui.Dialog');</script>
<script type="text/javascript">
chrome.bookmarks.onCreated.addListener(function(id, bookmark) {
// Setup the dialog box.
var dialog1 = new goog.ui.Dialog();
dialog1.setContent('[Insert Placeholder]');
dialog1.setTitle('Title Placeholder');
// Display dialog.
dialog1.setVisible(true);
});
</script>
</head>
<body>
<!-- Do Nothing -->
</body>
</html>
Solução
Você não pode usar uma caixa de diálogo como esta em uma página de segundo plano:
Você pode fazer isso para a página de opções:
Opções de extensões do Google Chrome
Portanto, no seu caso, você deseja ouvir o OnCreated para os favoritos e, como deseja fazer uma caixa de diálogo, precisaria se comunicar com a própria página. Portanto, você obtém o SelectedTab via:
Depois de obter a guia, você pode executar o JavaScript:
Outras dicas
Para esclarecer um pouco a resposta de Mohamed, a caixa de diálogo modal do fechamento é HTML na página. Provavelmente, isso está realmente funcionando no seu código, mas como você está fazendo isso na página de segundo plano, e a página de segundo plano não é visível, você não o vê. Você pode usar técnicas que usam Window.open ou Window.alert da página em segundo plano, mas não coisas que estão tentando exibir HTML interativo para o usuário. Para isso, você precisará colocar o conteúdo em uma janela pop -up ou na própria página, como sugere Mohamed.