2014-04-28 4 views
1

Chrome/Opera 확장 프로그램을 작성했으며으로 이식하는 것을 고려하여 입니다. 그것은 2 가지 특정 기능이 필요하며 둘 중 하나가 없다면 전체 계획에 거부권을 행사할 것입니다. HTTPS URL을을 읽을 수Safari 확장 개발에서이 두 가지 기능이 지원됩니까?

  1. 능력은 - 크롬는 "탭"권한의 일부로서이를 지원합니다. 파이어 폭스 (내가 마지막으로 확인한 것)는 그렇지 않다.

  2. 활성화 버튼의 모양을 동적으로 변경할 수 있습니다. - Chrome에서는 배경 페이지 (예 : 버튼)에 하나의 캔버스가있는 것이므로 ...

    -body-canvas id = "button_canvas"width = "19"height = "19"- -/canvas- -/신체 -

... 그리고 동적으로 필요할 때마다 변경 후 ...

var canvas = document.getElementById("button_canvas"); 
var context = canvas.getContext("2d"); 
var imageData = context.getImageData(0, 0, 19, 19); 
// write stuff to the canvas 
context.putImageData(imageData, 0, 0); 
imageData = context.getImageData(0, 0, 19, 19); 
// key element below 
chrome.browserAction.setIcon({ 
    imageData: imageData 
}); 

나는에 사용되는 맥을 구입하기 전에 사람이 결정적으로이 두 가지 질문에 대답 할 수있는 경우 크레이그리스트, 고맙겠습니다. 감사!

p.s. FWIW, 내 자신의 인터넷 검색 결과 Safari에서는 # 2를 사용할 수 없음을 알 수 있습니다. # 1에 대한 아이디어가 없습니다.

답변

2

저는 둘 모두 가능하다고 생각합니다. HTTPS URL의

: 사파리 확장 빌더에서, 확장에 따라 웹 사이트 액세스모든액세스 수준을 설정하고 가 보안 페이지 확인란을 포함 진드기.

툴바 아이콘에 표시된 아이콘을 동적으로 변경하려면 먼저 Safari 확장 빌더에서 아이콘을 설정하십시오. 그런 다음 도구 모음 버튼 클릭에 대한 응답으로 변경하려면 :

var toolbarButtons = safari.extension.toolbarItems; 
for (var i = 0; i < itemArray.length; ++i) { 
    var item = toolbarButtons[i]; 
    if (item.identifier === "mybutton") { 
     item.image = safari.extension.baseURI+'othericon.png'; 
    } 
} 
+0

감사합니다, 매트 :

safari.application.addEventListener('command', performCommand, false); function performCommand(event) { if (event.command === 'changeIcon') { event.target.image = safari.extension.baseURI+'othericon.png'; } } 

다른 상황에서, 당신은 당신의 도구 모음 단추 원하는 하나를 수정하는 반복 할 수 있습니다. 페이지 보안을 확인하십시오. 버튼? 소리가 정말 역동적이지 않은 것처럼 들리지만 대체 가능합니다. 즉, 필요한 모든 아이콘을 미리 포장해야한다는 의미입니다. 그것이 당신의 이해입니까? – fivedogit

+1

예, 'replaceable'은 아마도 더 정확한 설명 일 것입니다. 이미지를 미리 패키지화해야하는지 잘 모르겠습니다. 인터넷에서 다운로드 한 이미지를 사용하거나 데이터 URL을 지정하는 것이 가능할 수도 있습니다. 시도하지 않았습니다. –