我試圖構建我的第一個safari擴展,並在一些基本概念上損失了Im。Safari擴展中的彈出框
第一個障礙是從工具欄按鈕打開一個彈出窗口,就像Ebay Safari擴展一樣。
http://anywhere.ebay.com/browser/safari/welcome/
我試圖構建我的第一個safari擴展,並在一些基本概念上損失了Im。Safari擴展中的彈出框
第一個障礙是從工具欄按鈕打開一個彈出窗口,就像Ebay Safari擴展一樣。
http://anywhere.ebay.com/browser/safari/welcome/
據據我所知,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影響,因爲它在它自己的窗口中。
閱讀:http://net.tutsplus.com/tutorials/other/how-to-create-a-safari-extension-from-scratch/
它介紹瞭如何讓當按下工具欄按鈕事情發生,你只需把它放在這中間:
<script>
// Set up the Listener
safari.application.addEventListener("command", performCommand, false);
// Function to perform when event is received
function performCommand(event) {
// Make sure event comes from the button
if (event.command == "open-nettuts") {
**YOUR FUNCTION**
}
}
</script>
我覺得在Safari下它叫popover,那是什麼意思?
兩件事情,我注意到:
它實際上是綜合了一些東西。稍後我會發布答案。 – Peter 2011-02-11 19:03:42
有沒有代碼工作? – Charlie 2011-11-08 17:37:30