私は現在、最初のFirefox拡張機能を構築していますが、1つの機能に少し問題があります。ツールバーのボタンクリックに応答して、新しいブラウザタブを開きたいのですが。新しいタブには、いくつかの追加のボタンとともに、Webページのコンテンツが含まれている必要があります。
現時点では、新しいタブのコンテンツ用に別のxulファイルを作成しました。
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="myapp-report-window"
title="Example 4.5.1"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript"
src="chrome://myapp/content/main.js" />
<toolbox>
<toolbar id="nav-toolbar">
<toolbarbutton label="This-is-going-to-do-some-stuff"/>
</toolbar>
</toolbox>
<iframe id="myapp-report-frame" flex="1"/>
<script type="text/javascript">
function loadPage(url){
document.getElementById('myapp-report-frame').setAttribute('src',url);
}
</script>
</window>
このxulファイルは、メインのmyapptoolbar.xulから参照されるこのjavascriptを介して起動されます。
gBrowser.selectedTab = gBrowser.addTab('chrome://myapp/content/report.xul');
var newTabBrowser = gBrowser.getBrowserForTab(gBrowser.selectedTab);
newTabBrowser.addEventListener("load",
function(){
loadPage('http://www.somedynamicallysetwebsite.com');
}, true);
私が抱えている問題は、loadPage関数が見つからないため、iframeのsrc属性が設定されないことです。それはばかげたスコーピングの問題だと確信していますが、私はFirefox拡張機能(2日目!)に非常に慣れていないので、助けていただければ幸いです。