XSLT+;JavaScript:使用类
我正在尝试使用XSL中的类(“msxsl:script”标记)。但我在调试文件时收到“语法错误”消息。下面是我正在使用的一个简单代码:XSLT+;JavaScript:使用类,javascript,xml,xslt,class,function,Javascript,Xml,Xslt,Class,Function,我正在尝试使用XSL中的类(“msxsl:script”标记)。但我在调试文件时收到“语法错误”消息。下面是我正在使用的一个简单代码: function Test1(str) { this.str = str; } Test1.prototype.getStr = function() { return this.str; } function test() { var newTest1 = new Test1("some string"); return (
function Test1(str)
{
this.str = str;
}
Test1.prototype.getStr = function()
{
return this.str;
}
function test()
{
var newTest1 = new Test1("some string");
return (newTest1.getStr());
}
如果我将代码插入到一个aspx文件并调用测试函数,那么一切正常,没有任何错误消息。
可以在XSL中使用类吗?似乎在脚本块的顶层可以使用的内容上有一些奇怪的限制,它们不允许在顶级函数中使用
this
。但是,如果你再深入一层,这些限制就会消失:
function MakeTest1()
{
function inner(s)
{
this.str = s;
}
inner.prototype.getStr = function()
{
return this.str;
}
return inner;
}
var Test1 = MakeTest1();
function test()
{
var newTest1 = new Test1("some string");
return (newTest1.getStr());
}
您可以发布您正在使用的实际XSLT吗。我认为语法错误与使用类无关。实际上,我的XSL文件一切正常。我可以执行它没有任何问题(没有脚本)。插入脚本后,我在这一行得到了语法错误:Test1.prototype.getStr=function(),所有代码都位于msxsl:script中。我还插入了CDATA。您是否在脚本中插入了CDATA和转义
以及&
字符?只有一个是必需的-CDATA或转义。所有代码都在CDATA中。正如您所看到的,代码中没有任何符号或其他特殊符号。