我的XUL应用程序有一个外部javascript文件,它定义了一些函数。 这些函数以前是有效的,但现在我无法从 .xul 文件中调用任何这些函数。 谁能看出我做错了什么?
这是 chrome.manifest 文件
content mac chrome/content/
skin mac classic/1.0 chrome/skin/
这是我的主.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 函数也不起作用。
您应该检查错误控制台 - 对于XULRunner应用程序,您可以通过指定-jsconsole
命令行标志来访问它。您将看到以下消息:
例外:缺失:在案例标签之后
参考这一行:
case "false";
此行末尾应该有一个冒号,而不是分号。您的JavaScript文件存在语法错误,这就是它无法加载的原因。