2010-11-03 5 views
1

Мне нужно загрузить различные документы во всплывающем окне. Я использую это:Как загрузить новый документ во всплывающем окне расширения Chrome?

chrome.browserAction.setPopup({popup:"newpage.html"}); 

Это работает, за исключением того, что новая страница не отображается, пока я не нажму кнопку расширения еще раз. Opera имеет аналогичный API, но всплывающее содержимое фактически заменяется, даже если всплывающее окно уже открыто.

Итак, как мне заставить Chrome всплывать, загружая новую страницу, не нажимая кнопку расширения?

ответ

2

Вы можете использовать iframe или div и заполнить его содержимым, которое вы хотите. Пример:

<!-- popup.html --> 
<!-- This doesn't change --> 
<html> 
<body> 
    <!-- But the content of this container does --> 
    <div id="content" style="display:none"></id> 

    <!-- By using a script like this: --> 
    <script> 
      document.getElementById("content").innerHTML 
       = "<iframe src=\"newpage.html\" />"; 
    </script> 
</body> 
</html> 
+0

Спасибо, но я думаю, я не смогу связаться с фоновой страницей из iframe, не так ли? Мне все равно нужно отправлять сообщения с каждой загруженной страницы на фон расширения. – lovinglinux

+0

В этом случае вы можете использовать XmlHttpRequest для этого, но тогда вам нужны разрешения. –

+0

Спасибо всем. Мне удалось решить проблему с помощью div, переместив некоторые вещи на уведомления, установив страницу параметров, которая будет открыта на новой вкладке, и отправляя сообщения туда и обратно между фоновым процессом и всплывающим окном. – lovinglinux

Смежные вопросы