Question

Je suis en train d'afficher une boîte de dialogue modale Javascript dans Chrome lorsqu'un utilisateur crée un signet. Cependant, après avoir essayé de fermeture et SimpleModal + JQuery, je ne peux pas sembler obtenir une boîte de dialogue apparaît. Est-ce une restriction des extensions dans Chrome, ou que je fais quelque chose de très mal? (Je suis encore à apprendre le Javascript, donc mon manque de compréhension, il pourrait très bien être la raison.)

Voici mon code à l'aide de fermeture. Cela fait dans la fonction, de sorte que ça fonctionne bien. Aucune suggestion? Merci!

<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>
Était-ce utile?

La solution

Vous ne pouvez pas utiliser une boîte de dialogue comme celui-ci dans une page d'arrière-plan:

fond-pages

Vous pouvez le faire pour la page d'options:

extensions Google Chrome options

Dans votre cas, vous voulez écouter onCreated pour les signets, et puisque vous voulez faire une boîte de dialogue, vous devez communiquer à la page elle-même. Par conséquent, vous obtenez le selectedTab via:

Une fois que vous obtenez l'onglet, vous pouvez alors exécuter le JavaScript:

Autres conseils

Pour clarifier la réponse de Mohamed un peu, dialogue modale de fermeture est en page HTML. Cela est probablement fonctionne réellement dans votre code, mais depuis que vous faites dans la page d'arrière-plan, et la page d'arrière-plan n'est pas visible, vous ne le voyez pas. Vous pouvez utiliser des techniques qui utilisent window.open ou window.alert de la page d'arrière-plan, mais pas des choses qui essaient d'afficher HTML interactif à l'utilisateur. Pour cela, vous aurez besoin pour obtenir le contenu dans une fenêtre pop-up ou dans la page elle-même comme Mohamed suggère.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top