가변 배열을 만들 때도이 배열 객체에 대한 참조를 만드는 XUL 컨텍스트의 변수에 저장하는 것이 문제입니다. 다른 XUL에서 변수를 볼 수 없으므로 배열에 액세스 할 수 없습니다. 컨텍스트 중 하나에서
은, 다른 컨텍스트에 대한 참조를 가져 :
는 다른 컨텍스트 건너 개체에 액세스하는 몇 가지 솔루션이 있습니다. 예를 들어 메인 윈도우 (browser.xul 오버레이)에 변수가 정의되어 있으면 윈도우 관리자를 사용하여 메인 윈도우에 대한 참조를 가져 와서 사이드 바에서 가져올 수 있습니다. 이 할 간단하지 않지만 당신이
당신은 글로벌 싱글을 만들 자바 스크립트 모듈을 사용 할 수처럼
당신은 특별히 간단한 경우에, 당신의 자신의 XPCOM 객체를 생성 할 수 있습니다.
JavaScript 모듈 옵션을 고려해야합니다. 가장 쉽고 안정적인 방법입니다. 그것은 파이어 폭스 3.0에 도입 된 당신은 자세한 내용은 여기 XPCOM에게
확인을 만들 필요없이 단지 자바 스크립트를 사용하여 수행 할 수 있습니다
https://developer.mozilla.org/en/JavaScript_code_modules/Using_JavaScript_code_modules
업데이트 : 여기
가 몇 가지 주 윈도우에 대한 참조를 얻는 방법에 대한 자세한 내용은 browser.xul에 정의 된 변수를 확인하십시오.
myArray = [1, 2, 3];
그런 다음 사이드 바 XUL에서, 당신은 메인 윈도우에 대한 참조를 가져와 기준을 사용하여 변수에 액세스 할 수 있습니다 :
당신은 (주 창)에 browser.xul 오버레이에서 변수를 정의
var mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIWebNavigation)
.QueryInterface(Components.interfaces.nsIDocShellTreeItem)
.rootTreeItem
.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIDOMWindow);
var value = mainWindow.myArray[0];
이러한 링크는 당신을위한 유용한 정보가있을 수 있습니다 :
https://developer.mozilla.org/en/Working_with_windows_in_chrome_code
https://developer.mozilla.org/en/Code_snippets/Tabbed_browser
처음에 감사드립니다. "메인 윈도우 (browser.xul 오버레이)에 변수가 정의되어 있다면, 메인 윈도우에 대한 참조를 얻기 위해 윈도우 매니저를 사용하여 사이드 바에서 가져올 수 있습니다." 나는 그것을 분명히 알지 못했다.그리고 내 사건은 당신이 말한 것과 똑같이 : 메인 윈도우 (브라우저 xul 오버레이)의 js에서 swf 파일 경로를 관측하는 배열을 얻었고 사이드 바 js에서 그들을 얻고 싶습니다. 그래서 브라우저에서 변수를 정의했습니다 .xul? 어떻게해야하는지, 어떻게 사이드 바 js에서 그것을 얻는가? 다시 감사합니다. – jin
응답에 좀 더 많은 정보를 추가했습니다. 희망이 도움이됩니다! – flpmor
도움을 주셔서 감사합니다. 내 코드가 길기 때문에이 코드가 xul의 js를 추가한다고 생각합니까? – jin