2011-02-11 3 views

답변

0

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

이 도구 모음 버튼을 누를 때 어떤 일이하는 방법을 설명합니다, 당신은 그냥이의 중간을 둘 것 아시다시피 사파리는 Chrome이하는 것처럼 '팝업'을 만들 수 없습니다. 내 사파리 확장을 위해 jQueryUI를 사용하여 내 팝업을 만듭니다. YUI 또는 Mootools를 사용할 수도 있습니다. eBay와 Twitter의 확장 기능을 사용하면 iframe을 사용하고있는 것을 알 수 있습니다. jquery가 iframe의 내용을 수정하는 것을 허용하지 않기 때문에 (i가 틀린 경우 올바른 것임을 알기 때문에) 어떻게 구현하는지 알 수 없습니다.

질문에 대답하기 위해 단추가 삽입 된 스크립트에 이벤트를 보냅니다. 이 스크립트는 다음과 유사한 코드를 가질 수 있습니다.

$('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 규칙을 가져야 만합니다.

나는 또한 "popup"창을 열기 위해 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

나는 사파리라는 팝 오버 (Popover)라고 생각하는데, 그게 무슨 뜻이야? 내가 발견

두 가지 :

  1. (도구 모음 항목)에는 명령 세트 명령 세트가 있으면 다음, 도구 모음 단추
  2. 을 클릭하면, 팝 오버가 자동으로 표시가없는 경우 사용자가 클릭해야하며 팝업 창이 표시 될 때까지 도구 모음 버튼을 계속 누르고 있습니다.
관련 문제