在OnClient Load事件中从NotesDocument加载JavaScript

在OnClient Load事件中从NotesDocument加载JavaScript,javascript,xpages,ssjs,Javascript,Xpages,Ssjs,我想在Notes文档中加载dataTables插件的初始化脚本。在这个文档中,我存储了更多的数据,比如对象类型、数据源位置、显示配置。现在我还想存储初始化datatable插件的脚本 我可以在XPage上的beforePageLoad事件中设置的viewScope中存储该值 viewScope的内容可以如下所示: $(document).ready(function() { var table = $('#tablePager').DataTable({ "order": [ [1, "asc"

我想在Notes文档中加载dataTables插件的初始化脚本。在这个文档中,我存储了更多的数据,比如对象类型、数据源位置、显示配置。现在我还想存储初始化datatable插件的脚本

我可以在XPage上的beforePageLoad事件中设置的viewScope中存储该值

viewScope的内容可以如下所示:

$(document).ready(function() { var table = $('#tablePager').DataTable({ "order": [ [1, "asc"] ], responsive: true, paging: false, /*stateSave: true,*/ colReorder: { reorderCallback: function() { console.log('callback'); } }, dom: 'Bfrtip', buttons: [ 'excelHtml5', 'print' ] }); //$('#tablePager_filter input').val('');});
当我尝试评估OnClient Load事件中的值时,我得到一个错误:

<xp:eventHandler event="onClientLoad" submit="false">
        <xp:this.script><![CDATA[eval('#{javascript:viewScope.dataTable}')
]]></xp:this.script>

未捕获的语法错误:无效或意外标记


有人对如何将字符串转换为函数有什么建议吗?

为什么要将客户端JS放在服务器端的viewScope变量中?您可以改用xp:scriptBlock控件

为什么要将客户端JS放在服务器端viewScope变量中?您可以使用xp:scriptBlock控件,而不是在另一个用java编写的进程中收集字段的值。因此,我只是为了方便起见而将其存储在viewscope中。尽管如此,我还是尝试了一个脚本块,但得到了错误:uncaughtSyntaxError:InvalizeReturn语句。现在我尝试了:在源代码中,我找到了:return“$(document).ready(function(){var table=$('.#tablePager').DataTable({\'order\':[[1,\'asc\'”]],responsive:true,paging:false,/*stateSave:true,*/colReorder:{reorderCallback:function(){console.log('callback');}},dom:'Bfrtip',按钮:['copyHtml5','excelHtml5','print'})/$('#tablePager_filter input').val('');“现在可以工作了。谢谢兄弟!