2010-01-02 1 views
0

Я пытаюсь отобразить модальное диалоговое окно Javascript в Chrome, когда пользователь создает закладку. Однако, после попытки Closure и SimpleModal + JQuery, я не могу получить диалоговое окно. Является ли это ограничением расширений в Chrome, или я делаю что-то очень не так? (Я все еще изучаю Javascript, поэтому я не могу понять, что это может быть причиной.)Диалоговое окно отображения из расширения Chrome

Вот мой код, используя 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> 

ответ

3

Вы не можете использовать подобный диалог в справочной странице:

background-pages

Вы можете сделать это на странице опций:

Google Chrome Extensions Options

Так в вашем случае, вы хотели бы для прослушивания onCreated для закладок, и поскольку вы хотите сделать диалоговое окно, вам нужно будет связаться с самой страницей. Таким образом, вы получаете selectedTab через:

method-getselected

После того, как вы получите вкладку, вы можете выполнить на JavaScript:

method-executescript

2

Чтобы уточнить ответ Мохамед немного, модальный диалог закрытия - это HTML внутри страницы. Вероятно, это действительно работает в вашем коде, но поскольку вы делаете это на фоновом изображении, а фоновая страница не видна, вы ее не видите. Вы можете использовать методы, которые используют window.open или window.alert со справочной страницы, но не то, что пытается отобразить интерактивный HTML для пользователя. Для этого вам нужно получить содержимое во всплывающем окне или на самой странице, как предлагает Мохамед.

+0

Я ценю разъяснение (+1). Используя информацию от Мохамеда, я смог отобразить диалог (ну, вроде - он выглядит не корректно, но, по крайней мере, что-то есть), хотя он делает это при загрузке страницы, а не когда я фактически добавляю закладки (кажется, это делается произвольно). Теперь это для меня. Я открыт для предложений, но у меня также не было времени, чтобы по-настоящему поиграть с ним (жизнь была занята), поэтому это может быть что-то простое. – JasCav