Расширение Safari накладывает iframe на каждую страницу

Я пишу расширение для Safari. Он должен накладывать контент из другого источника поверх страницы, когда я нажимаю кнопку на панели инструментов.

Как разместить его в верхнем левом углу браузера поверх контента? Когда я нажимаю кнопку закрытия, iframe должен быть уничтожен, отображая содержимое, которое ранее было скрыто?

Спасибо!


person gdanko    schedule 27.02.2011    source источник


Ответы (1)


Вы можете поместить CSS либо в строку, либо в таблицу стилей.

<iframe src="http://path.to/content" style="width: 200px; height: 100px; 
position: absolute; top: 0; left: 0; z-index: 100000;" id="overlay_frame"></iframe>

Затем для вашей «закрытой» ссылки у вас есть выбор: либо полностью уничтожить iframe:

<a href="#" onClick="document.getElementById('overlay_frame').removeChild( 
document.getElementById('overlay_frame').childNodes[0] );">Close</a>

или просто скрыть это:

<a href="#" onClick="document.getElementById('overlay_frame').style.display='none';">Close</a>

Лично я бы просто спрятал его, чтобы вы могли снова использовать его, изменив источник:

<a href="#" onClick="document.getElementById('overlay_frame').src='http://link.to/something/else';">Change Frame</a>
person Rob Williams    schedule 27.02.2011
comment
Но как мне ввести его через встроенный скрипт Safari Extension? - person gdanko; 27.02.2011