在xsl中为body onload添加一个值

时间:2015-03-29 09:28:59

标签: javascript html xslt

我有一个xsl,我在客户端转换为html。因为我需要等待整个javascript加载因此我给了:

         <body onload="setTimeout(MyInitializeFunction, 1000);"

这适用于其他浏览器,但IE不支持setTimeout.So谷歌搜索后我发现解决方案是将其包装在这样的函数内:

        <body onload= "setTimeout(function(){MyInitializeFunction();}, 1000);"

错误:现在它说MyInitializeFunction是一个未知的XSLT函数。 注意:我已经尝试将其封装在CDATA中后从xml文件中读取,但没有用。

body onload='&lt;xsl:value-of select="teststrings/MyInitializeFunctionVariable" disable-output-escaping="yes" /&gt'

它应该很简单但是我缺少的是什么?????? Plz帮助人们......

1 个答案:

答案 0 :(得分:0)

你需要加倍括号:<body onload= "setTimeout(function(){{MyInitializeFunction();}}, 1000);">,这应该解决XSLT的问题。为什么你认为使用Javascript setTimeout(MyInitializeFunction, 1000)的IE在setTimeout(function() {MyInitializeFunction();}, 1000)应该工作时不起作用我不确定,两个调用都将函数对象传递给setTimeout。在非常旧的浏览器中,您只能传递包含代码的字符串,如setTimeout('MyInitializerFunction();', 1000)中所示,因此可能更有可能修复任何Javascript错误。