我在XSL文档中使用JavaScript for循环时遇到了一个特殊问题。在这里:
我在点击CheckBox时调用JavaScript函数。以下是我想在javascript函数::
中做的事情function SeelctAll()
{
for(var cnt = 0; cnt < 100; cnt++)
{
//Business Logic here.
}
}
为此,我将<
替换为<
并尝试了。我收到一条错误,上面写着“对象预期”。然后我将整个函数包含在<![CDATA[
部分中并尝试。我仍然得到了相同的“Obejct Expected”错误。
对此的任何帮助都会非常明显。
答案 0 :(得分:0)
我们需要在这里看到更多代码,以及您正在使用什么过程将XSL文档中的JavaScript转换为HTML页面中的JavaScript以供执行。虽然<
转义和CDATA部分都是在XML文件中包含带外字符的有效方法,但当您到达浏览器端时,您可能将页面处理为HTML而不是本机XML,此时规则是不同的,您的HTML生成需要小心,以确保浏览器可以接受XSL转换的输出。
通过完全避免它,看看它是否真的是导致麻烦的<
而不是被忽略的“商业逻辑”。例如。将其替换为100>cnt
。
(在任何情况下,通常你都希望将脚本逻辑保留在HTML页面的主体之外。最好在外部脚本中,你不必担心将它嵌入另一个标记的规则。语言。)
答案 1 :(得分:0)
适合我:
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<xsl:template match="/">
<html>
<head>
<script type="text/javascript"><![CDATA[
function SelectAll() {
var x = 0;
for(var cnt=0; cnt<100; cnt++) {
x = cnt; // whatever
}
alert(x);
}
]]>
</script>
</head>
<body>
<div onclick="SelectAll()">Click!</div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
这会产生:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
function SelectAll() {
var x = 0;
for(var cnt=0; cnt<100; cnt++) {
x = cnt; // whatever
}
alert(x);
}
</script>
</head>
<body>
<div onclick="SelectAll()">Click!</div>
</body>
</html>
它会提醒预期的“99”。
答案 2 :(得分:0)
我认为这个问题要简单得多。您将函数命名为SeelctAll()
。我认为你说的是错误的功能。