2011-02-11 8 views

答えて

0

http://net.tutsplus.com/tutorials/other/how-to-create-a-safari-extension-from-scratch/

これは、ツールバーのボタンが押されたときに何かが起こる持ってする方法を説明し、あなたはそれにこのの真ん中に置きます私が知っているように、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から保護されるので、私はそのルートに行きます。

+0

ありがとうございました! iFramesは実際に私が使用し終わったものです... – Peter

+1

Peter、iframeディスパッチとglobal.htmlからのメッセージを受信できますか? – gdanko

+0

これは間違っています。 Safariではポップアップを作成することができます。ボタンを追加して、そのボタンにポップアップを割り当てる必要があります。 – dimitrirostavo

3

これを読む限り

<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> 
+0

実際にはすべてのものを組み合わせました。少し遅れて回答を投稿してください。 – Peter

+0

コードが正常に機能しましたか? – Charlie

0

私はSafariの下で、ポップオーバーと呼ばれると思います。私が気づい

二つのこと:

  1. (ツールバー項目に)何のコマンドセットコマンドセットがある場合、ツールバーのボタン
  2. をクリックすると、ポップオーバーが自動的に表示がない場合ユーザーはクリックする必要があります。ツールバーのボタンを押したままにすると、ポップオーバーが表示されるまでが表示されます。