0

从最近几天开始,我一直在尝试将RapidSpell CheckerZK Web 应用程序集成,并且我能够运行演示代码Here you can get the demo code。现在,当我要在我的 Web 应用程序中使用相同的代码时,如果我的页面是单个页面,一切正常,但是当我的页面是从下面的代码在选项卡内动态创建时

Executions.createComponents("/my_detail.zul", comp, arguments);

虽然我在zul文件中添加了上述行

<?script type="text/javascript" content=" zk.afterMount(function()
{rsw_setupTextBoxes(true);});"?>

    <script src="a.rapidspellweb?t=r&amp;n=RapidSpell-AYT.js" />
     <script type="text/javascript">
        rapidSpell.setParameterValue('default', 'UserDictionaryFile',
        '~/userdictionaries/1.txt');
    </script>     

这是运行快速拼写检查器所必需的。

在这里您可以看到运行良好的演示zul

<window title="Hello World!!" border="normal" width="100%" >
    <?script type="text/javascript" content=" zk.afterMount(function()
{rsw_setupTextBoxes(true);});"?>
    <style src="./sans-style.css" />
    <script src="a.rapidspellweb?t=r&n=RapidSpell-AYT.js" />
    <script type="text/javascript">
        rapidSpell.setParameterValue('default', 'UserDictionaryFile',
        '~/userdictionaries/1.txt');
    </script >
    <label value="You are using: ${desktop.webApp.version}" />
    <textbox rows="10" ></textbox>

</window>
4

1 回答 1

0

你的意思是如果直接链接到页面可以正常工作,但如果页面是动态创建的,则会发生一些 js 错误?

这可能是由于运行了一些应该在过早加载 js 库后运行的代码造成的,您可以尝试以下操作:

var initTimer = setInterval (function () {
    if (window.rapidSpell) {
        rapidSpell.setParameterValue('default', 'UserDictionaryFile',
            '~/userdictionaries/1.txt');
        clearInterval(initTimer);
    }
}, 500);

编辑:应用 subodh joshi 提供的编辑,用 javascript 替换 zscript 部分

通过javascript调用所需的函数,

例如,

<script type="text/javascript">
    <![CDATA[
      zk.afterMount(function(){
             setTimeout(function() { rapidSpell.setParameterValue('default', 'UserDictionaryFile', '~/userdictionaries/AmandaDic.txt');}, 2000); 
             setTimeout (function () { rsw_setupTextBoxes(true);}, 4000); });
    ]]> 
</script>
于 2013-08-03T16:14:11.747 回答