1

私の XUL アプリケーションには、いくつかの関数を定義する外部 JavaScript ファイルがあります。これらの関数は以前は機能していましたが、.xul ファイル内からこれらの関数を呼び出すことができなくなりました。誰かが私が間違ったことを見ることができますか?

これが chrome.manifest ファイルです

content mac chrome/content/
skin    mac classic/1.0 chrome/skin/

これが私のmain.xulファイルの一番上です

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://mac/skin/main.css" type="text/css"?>

<window id="mac-window" 
    title="MAC" 
    persist="screenX screenY width height sizemode"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    <script type="text/javascript" src="chrome://mac/content/main.js"/>

ファイルの先頭で参照されている css ファイルは正常に機能することに注意してください。また、「text/javascript」を「application/x-javascript」に変更しようとしましたが、効果はありませんでした。

以下は、javascript ファイルの内容全体です。

function exit() {
    window.close();
}

function toggle_toolbar(menuitem, toolbar) {

    switch (menuitem.getAttribute("checked"))
    {
    case "true":
        menuitem.setAttribute("checked", "false");
        toolbar.hidden = true;
        break;
    case "false";
        menuitem.setAttribute("checked", "true");
        toolbar.hidden = false;
        break;
    }
}

これらの関数は次のように呼び出されます。

<commandset id="cmdset-file">
    <command id="cmd-toolbar" oncommand="toggle_toolbar(document.getElementById('view-popup-toolbar'), document.getElementById('the-toolbar'));"/>
    <command id="cmd-exit" oncommand="exit();"/>
</commandset>

また、2 つの menuitem には、これら 2 つのコマンドの ID に設定された command 属性があります。

XUL ファイルにインラインで配置された Javascript は正常に動作しますが、JavaScript ファイルが参照できないようです。これは今日の初めに完全にうまくいきました。これが機能しなくなる前に、いくつかのタブボックスを非表示/非表示にするために JavaScript を試していましたが、それが関連しているかどうかはわかりません。

私のjavascriptファイルが機能しなくなった理由は誰にも分かりますか?

前もって感謝します!

編集: 明確にするために、私は XULRunner を使用しています。また、.x​​ul ドキュメントの script タグ内から JavaScript 関数の 1 つを呼び出そうとしても、うまくいきません。

4

1 に答える 1

1

エラー コンソールを確認する必要があります。XULRunner アプリの場合は、-jsconsoleコマンド ライン フラグを指定してアクセスできます。次のメッセージが表示されます。

例外: 欠落: ケース ラベルの後

この行を参照してください:

case "false";

この行の最後には、セミコロンではなくコロンが必要です。JavaScript ファイルに構文エラーがあるため、読み込まれません。

于 2012-07-09T07:03:50.240 に答える