2012-07-08 50 views
1

我的XUL应用程序有一个外部JavaScript文件,它定义了一些函数。这些函数之前都在工作,但现在我无法从.xul文件中调用任何这些函数。任何人都可以看到我做错了什么?XUL没有引用JavaScript文件

这里的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。

Javascript把内联放在XUL文件中工作正常,但它好像无法引用JavaScript文件。今天早些时候这工作得很好。在停止工作之前,我正在试验一些JavaScript来隐藏/取消隐藏某些tabbox,但我不确定这是否与之相关。

有没有人看到为什么我的JavaScript文件已停止工作?

在此先感谢!

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

回答

1

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

异常:缺少:case标签

后,参照该行:

case "false"; 

应该有这行的末尾有一个冒号,不一个分号。你的JavaScript文件有语法错误,这就是为什么它不加载。

+0

谢谢!不敢相信我没有看到... – ahuth 2012-07-09 09:48:00