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>

并且两个菜单项的命令属性设置为这两个命令的 id。

在 XUL 文件中嵌入的 Javascript 可以正常工作,但似乎无法引用 javascript 文件。这在今天早些时候工作得很好。在此停止工作之前,我正在尝试使用一些 javascript 来隐藏/取消隐藏一些选项卡框,但我不确定这是否相关。

有谁知道为什么我的 javascript 文件停止工作了?

提前致谢!

编辑:为澄清起见,我正在使用 XULRunner。此外,尝试从 .xul 文档的脚本标记中调用其中一个 javascript 函数也不起作用。

4

1 回答 1

1

您应该检查错误控制台 - 对于 XULRunner 应用程序,您可以通过指定-jsconsole命令行标志来访问它。您将看到此消息:

例外:缺少:在案例标签之后

参考这一行:

case "false";

此行的末尾应该有一个冒号,而不是分号。您的 JavaScript 文件有语法错误,这就是它无法加载的原因。

于 2012-07-09T07:03:50.240 回答