0

当用户创建书签时,我试图在 Chrome 中显示模态 Javascript 对话框。但是,在尝试了 Closure 和 SimpleModal+JQuery 之后,我似乎无法显示一个对话框。这是 Chrome 中的扩展限制,还是我做错了什么?(我还在学习 Javascript,所以我对它缺乏了解很可能是原因。)

这是我使用闭包的代码。它确实使它成为功能,所以它工作正常。有什么建议么?谢谢!

<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

您不能在后台页面中使用这样的对话框:

背景页面

您可以对选项页面执行此操作:

谷歌浏览器扩展选项

因此,在您的情况下,您可能希望在 onCreated 上监听书签,并且由于您想要创建一个对话框,因此您需要与页面本身进行通信。因此,您可以通过以下方式获得 selectedTab:

方法-getselected

获得选项卡后,您可以执行 JavaScript:

方法执行脚本

于 2010-01-02T20:47:22.997 回答
2

为了澄清 Mohamed 的回答,闭包的模态对话框是页面内 HTML。这可能实际上在您的代码中工作,但由于您在后台页面中执行此操作,并且后台页面不可见,因此您看不到它。您可以使用从后台页面使用 window.open 或 window.alert 的技术,但不能使用试图向用户显示交互式 HTML 的技术。为此,您需要按照 Mohamed 的建议将内容放入弹出窗口或页面本身。

于 2010-01-12T17:02:50.670 回答