Насколько я знаю, Safari не позволяет нам создавать "всплывающие окна", как это делает Chrome. Для моего расширения Safari я использую jQueryUI для создания своего всплывающего окна. Вы также можете использовать YUI или Mootools. Разбирая расширения eBay и Twitter, я вижу, что они используют iframe. Как именно они это реализуют, я не знаю, так как jquery не позволяет вам изменять содержимое iframe (поправьте меня, если я ошибаюсь).
Но чтобы ответить на ваш вопрос, ваша кнопка отправит событие введенному сценарию. Этот скрипт может иметь код, подобный следующему:
$('body').append('<div id="mypopup">');
var myPopup = $('#mypopup').dialog({
'autoOpen' : false ,
'draggable' : false,
'modal' : false,
'resizable' : false,
'title' : 'My Popup'
});
function messageHandler(msgEvent) {
var messageName = msgEvent.name;
var messageData = msgEvent.message;
if (messageName === 'buttonPushed') {
if (myPopup.dialog('isOpen')) {
myPopup.dialog('close');
return;
}
$('#mypopup').children().empty(); // Clear out any crap should it exist
$('#mypopup').append(someHTML);
myPopup.dialog('open');
return;
}
}
}
Это очень простой пример. У меня есть панель инструментов и множество других вещей. Кроме того, у вас должны быть ДЕЙСТВИТЕЛЬНО определенные правила CSS, чтобы защитить CSS вашего всплывающего окна от сбоев на каждом сайте в мире.
Я также думал об использовании global.html, чтобы открыть всплывающее окно, но, насколько я могу судить, все, что он может сделать, это открыть окно. Я не вижу каких-либо средств для установки таких атрибутов, как размер и т. Д. Если они есть, я бы пошел по этому пути, поскольку ваше всплывающее окно было бы тогда защищено от CSS, так как оно находится в своем собственном окне.