我想在用户创建书签时在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>
答案 0 :(得分:3)
您无法在后台页面中使用此类对话框:
<强> background-pages 强>
您可以为选项页面执行此操作:
<强> Google Chrome Extensions Options 强>
因此,在您的情况下,您可能希望在onCreated上收听书签,并且由于您想要执行对话框,因此您需要与页面本身进行通信。因此,您可以通过以下方式获取selectedTab:
<强> method-getselected 强>
获得标签后,您就可以执行JavaScript:
<强> method-executescript 强>
答案 1 :(得分:2)
为了澄清Mohamed的回答,闭包的模态对话框是页内HTML。这可能实际上在您的代码中工作,但由于您在后台页面中执行此操作,并且后台页面不可见,因此您看不到它。您可以使用从后台页面使用window.open或window.alert的技术,但不能尝试向用户显示交互式HTML的内容。为此,您需要将内容放入弹出窗口或Mohamed建议的页面本身。