Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从Chrome扩展显示对话框_Javascript_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript 从Chrome扩展显示对话框

Javascript 从Chrome扩展显示对话框,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,当用户创建书签时,我试图在Chrome中显示一个模式Javascript对话框。然而,在尝试闭包和SimpleModel+JQuery之后,我似乎无法显示对话框。这是对Chrome扩展的限制,还是我做错了什么?(我仍在学习Javascript,因此我对它缺乏理解很可能是原因之一。) 下面是我使用闭包的代码。它确实进入了函数中,所以工作正常。有什么建议吗?谢谢 <html> <head> <script src="./lib/closure-l

当用户创建书签时,我试图在Chrome中显示一个模式Javascript对话框。然而,在尝试闭包和SimpleModel+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>

goog.require('goog.ui.Dialog');
chrome.bookmarks.onCreated.addListener(函数(id,bookmark){
//设置对话框。
var dialog1=new goog.ui.Dialog();
对话框1.setContent(“[插入占位符]”);
对话框1.setTitle(“标题占位符”);
//显示对话框。
对话框1.setVisible(true);
});

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

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

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

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


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

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

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

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


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

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

我感谢您的澄清(+1)。使用Mohamed提供的信息,我能够显示一个对话框(嗯,有点-它看起来不正确,但至少有些东西在那里),尽管它是在页面加载时显示的,而不是在我实际添加书签时显示的(它似乎是任意的)。这是我现在的症结所在。我愿意接受建议,但我也没有时间真正玩弄它(生活一直很忙),所以它可能很简单。我感谢你的澄清(+1)。使用Mohamed提供的信息,我能够显示一个对话框(嗯,有点-它看起来不正确,但至少有些东西在那里),尽管它是在页面加载时显示的,而不是在我实际添加书签时显示的(它似乎是任意的)。这是我现在的症结所在。我愿意接受建议,但我也没有时间去真正地玩弄它(生活一直很忙),所以它可能很简单。