0

ユーザーがブックマークを作成するときに、Chrome でモーダル Javascript ダイアログ ボックスを表示しようとしています。ただし、Closure と SimpleModal+JQuery を試した後、ダイアログ ボックスが表示されないようです。これは Chrome の拡張機能の制限ですか、それとも何か間違ったことをしていますか? (私はまだJavascriptを学んでいるので、それを理解していないことが理由かもしれません。)

Closureを使用したコードは次のとおりです。それは機能に組み込まれているので、問題なく機能しています。助言がありますか?ありがとう!

<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>
4

2 に答える 2

3

バックグラウンド ページで次のようなダイアログを使用することはできません。

背景ページ

オプションページでそれを行うことができます:

Google Chrome 拡張機能のオプション

したがって、あなたの場合、onCreated でブックマークをリッスンする必要があり、ダイアログ ボックスを実行する必要があるため、ページ自体と通信する必要があります。したがって、次の方法で selectedTab を取得します。

メソッド-getselected

タブを取得したら、JavaScript を実行できます。

メソッド実行スクリプト

于 2010-01-02T20:47:22.997 に答える
2

モハメドの答えを少し明確にするために、クロージャのモーダル ダイアログはページ内 HTML です。これは実際にはコードで機能している可能性がありますが、バックグラウンド ページで実行していて、バックグラウンド ページが表示されていないため、表示されません。バックグラウンド ページから window.open または window.alert を使用する手法を使用できますが、インタラクティブな HTML をユーザーに表示しようとするものは使用できません。そのためには、Mohamed が提案するように、コンテンツをポップアップ ウィンドウまたはページ自体に表示する必要があります。

于 2010-01-12T17:02:50.670 に答える