我正在编写我的第一个Firefox XUL工具栏,但出现了奇怪的行为 - 为了调试我的代码,我从Firefox工具栏和我创建的非常简单的HTML文件中的按钮调用相同的js函数。
这个javascript函数显示一个警报窗口,使用“document.getElementById”获取一个元素,更改其颜色,并显示另一个警报窗口。
当使用HTML按钮调用该javascript函数时,它能够正常工作,但是当使用工具栏按钮时,“document.getElementById”返回null并且函数终止(只显示第一个警报窗口)。
有什么猜测可能会出错吗?下面提供(非常简单的)代码供参考。
非常感谢您的帮助!
这个javascript函数显示一个警报窗口,使用“document.getElementById”获取一个元素,更改其颜色,并显示另一个警报窗口。
当使用HTML按钮调用该javascript函数时,它能够正常工作,但是当使用工具栏按钮时,“document.getElementById”返回null并且函数终止(只显示第一个警报窗口)。
有什么猜测可能会出错吗?下面提供(非常简单的)代码供参考。
非常感谢您的帮助!
Javascript文件- facebrew.js
function FaceBrew_rtlSelection() {
alert('Before!');
sel_node = document.getElementById("header");
sel_node.style.color = 'blue';
alert('After!');
}
HTML文件
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test</title>
<script type="text/javascript" src="http://localhost/Sandbox/FaceBrew/chrome/content/facebrew.js"> </script>
</head>
<body>
<input type="button" value="Click me" id="select" onclick="FaceBrew_rtlSelection()" />
<div id="header">
<h1>Hello world!< /h1>
</div>
</body>
</html>
XUL文件 - facebrew.xul
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://facebrew/skin/facebrew.css" type="text/css"?>
<overlay id="FaceBrew-Overlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript"
src="chrome://facebrew/content/facebrew.js" />
CSS文件 - facbrew.css
#FaceBrew-Web-Button {
list-style-image: url("chrome://facebrew/skin/web.png");
}