我是XSL世界的新手,并且在使用XSL方面遇到的问题很少
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="/">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="mycss.css" />
<script language="javascript" type="text/javascript" >
<xsl:text></xsl:text>
</script>
</head>
<body>
<table>
<tr bgcolor='yellow' onMouseover="changeColor(event, 'red');"> MYTEXT
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
和我的XML文件是
<COUNTRY>
<CITY>X</CITY>
<CITY>Y</CITY>
</COUNTRY>
我的Javascript文件是
function changeColor(e,highlightcolor){
source=ie? event.srcElement : e.target
source.style.backgroundColor=highlightcolor
}
问题不是鼠标悬停,浏览器中的颜色没有变化........
答案 0 :(得分:2)
在你的XSL中我没有看到包含的任何JavaScript文件(.js),也没有看到你提到的javascript函数。其次,你在函数changeColor中使用的ie变量在哪里?
通过在浏览器上执行查看源来检查生成的html,看看是否一切正确。在函数中添加一些警报以确认它是否实际被调用。
答案 1 :(得分:0)
我建议您使用警告来更新您的changeColor功能,以检查您的情况。即,在函数的第一行之前:
alert("IE?" + ie);
然后在你的第一行之后:
alert("Src: " + source);
然后在更改颜色的行之前:
alert("style: " + source.style);
alert("bgclr: " + source.style.backgroundColor);
显然,你可以用Javascript调试器做类似的事情,但我假设你没有使用它。
答案 2 :(得分:0)
如果甚至没有显示您的警报(上面的jsight建议),请执行以下操作: 如果您的javascript不在xslt中,而是在html中,请按以下方式调用该函数:
onMouseover="javascript:changeColor(event, 'red');"
如果您的脚本位于xslt文件中:
在xsl:stylesheet中,指定
xmlns:myscript ='http://www.example.com/myscript'
将脚本部分声明为
function changeColor(e,highlightcolor){ 源=即? event.srcElement:e.target source.style.backgroundColor = highlightcolor}
将函数调用为:
onMouseover =“myscript:changeColor(event,'red');”
答案 3 :(得分:0)
firefox中没有警告....我怀疑是否正在调用函数。