2012-09-24 2 views
1

저는 Erik Vold의 툴바 버튼을 사용하고 있습니다. 나는 그것에 고정 된 패널을 가지고있다. 패널에 렌더링 된 html 정적 페이지에서 링크 중 하나를 클릭하면 같은 패널에 다른 것을 표시해야합니다.패널에서 렌더링 된 현재 페이지의 작업을 기반으로 패널의 contentURL 변경

addon-code와 html 정적 페이지 사이에서 전달되는 메시지에 포트 API를 사용하려고합니다. 특정 이벤트를 듣고, 나는 패널의 contentURL 필드를 변경하려면 :

var myScript = "window.addEventListener('click', function(event) {" + 
      " var t = event.target;" + 
      " if (t.nodeName == 'A')" + 
      " self.port.emit('click-link', t.id);" + 
      "}, false);" 

var mainPanel = require("panel").Panel({ 
    width: 200, 
    height: 200, 
    contentURL: require("self").data.url("appList.html"), 
    contentScript: myScript 
}); 

mainPanel.port.on("click-link", function(appName) { 
    if(appName=='app1'){ 
    //mainPanel.resize(700,500); --works 
    mainPanel.contentURL="http://www.some-server/app1.html"; --fails 
    } 
    if(appName=='app2') 
    ... 
}); 

mainPanel.resize() 패널의 크기를 조절 잘 동작합니다. Panel에 대해 contentURL을 변경하는 비슷한 방법이 있습니까?

+0

href 속성을 사용하면 올바른 페이지로 리디렉션됩니다. –

+0

SDK 코드를 살펴보면'panel.contentURL'을 변경하는 것이 효과가 있습니다. 그렇지 않다면 아마 SDK 버그를 발견했을 것입니다. –

+0

@WladimirPalant 문서에 언급 된 예제는 두 개의 다른 위젯에서 언급 한 예입니다. contentURL 속성을 직접 설정하고 있습니다 (위젯이나 toolbarbutton이 아닌). 문제가 될 수 있습니까? – user043

답변

0

그 코드가 작동해야합니다. 패널 모듈에서 버그를 발견했습니다. 예!

내가 bug 795490을 제출했으며 착륙까지 약간의 시간이 걸릴 수 있지만 수정해야 할 수정 사항이 pull request입니다.

+0

수정 사항이 도착했습니다! 거기에있는 SDK의 최신 버전을 구할 수 있어야합니다. https://github.com/mozilla/addon-sdk/commit/41d3fd8903dc290471b05c6e28191d33bce4b46c –

관련 문제