我有一个xsl,我正在客户端将其转换为html。由于我需要等待整个javascript加载,因此我给出了:
<body onload="setTimeout(MyInitializeFunction, 1000);"
这适用于其他浏览器,但IE不支持setTimeout。所以在谷歌搜索后,我发现解决方案是将其封装在如下函数中:
<body onload= "setTimeout(function(){MyInitializeFunction();}, 1000);"
错误:现在它说MyInitializeFunction是一个未知的XSLT函数。注意:在将xml文件封装在CDATA中后,我尝试过读取该文件,但没有用。
body onload='<xsl:value-of select="teststrings/MyInitializeFunctionVariable" disable-output-escaping="yes" />'
这应该很简单,但我缺少的是什么??????Plz帮助人们。。。。。
您需要加倍大括号:<body onload= "setTimeout(function(){{MyInitializeFunction();}}, 1000);">
,这应该可以解决XSLT的问题。为什么你认为在带有Javascript的IE中setTimeout(MyInitializeFunction, 1000)
不起作用,而setTimeout(function() {MyInitializeFunction();}, 1000)
应该起作用?我不确定,两个调用都向setTimeout
传递了一个函数对象。在非常旧的浏览器中,您只能传递带有代码的字符串,如setTimeout('MyInitializerFunction();', 1000)
,这样可能更容易修复任何Javascript错误。