Xpages JQuery脚本适用于新文档,但不适用于保存的文档
以下是我所拥有的:Xpages JQuery脚本适用于新文档,但不适用于保存的文档,xpages,Xpages,以下是我所拥有的: 包含jQuery和jQueryUI的Lotus数据库(8.5.3) form1是一个只有一个字段的表单。 设置为 “打开时-自动启用编辑模式” “打开-改为显示XPage:xpage1” “在Web访问上-改为显示XPage:xpage1” xpage1是一个xpage。它包括: 链接到form1中字段的输入框 一个调用小脚本的按钮,只是提醒(“一些文本”) 页面上包含jQuery脚本。这是一个可拖动的面板。这就是一切。只是一个可以在页面上拖动的面板 view1是一
- 包含jQuery和jQueryUI的Lotus数据库(8.5.3)
- form1是一个只有一个字段的表单。
设置为
- “打开时-自动启用编辑模式”
- “打开-改为显示XPage:xpage1”
- “在Web访问上-改为显示XPage:xpage1”
- xpage1是一个xpage。它包括:
- 链接到form1中字段的输入框
- 一个调用小脚本的按钮,只是提醒(“一些文本”)
- 页面上包含jQuery脚本。这是一个可拖动的面板。这就是一切。只是一个可以在页面上拖动的面板
- view1是一个基于form1显示文档的视图
- 如果在我的浏览器(Chrome或IE)中启动Xpage,它的行为正常:我可以在单击按钮时看到我的警报,我可以在页面上拖动我的面板,我可以填充我的字段,我可以保存文档
- 但是,当我稍后打开它时,Xpage会打开并显示字段数据,但我的脚本无法工作:无法保存文档、移动面板、显示警报
- 如果我在我的Lotus客户机中启动Xpage,它就会工作李>
- 如果我删除jQuery引用和可移动面板,其他脚本就会工作
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<!-- THIS WHERE I MAKE JQUERY AVAILABLE -->
<script src="js/jquery-1.9.1.js"></script>
<script src="js/jquery-ui-1.10.3.custom.js"></script>
<!-- THIS IS MY DATA BINDING -->
<xp:this.data>
<xp:dominoDocument var="ds1" formName="form1"></xp:dominoDocument>
</xp:this.data>
<!-- THIS IS MY FIELD -->
<xp:br></xp:br>
Field1 : <xp:inputText id="field1" value="#{ds1.field1}"></xp:inputText>
<xp:br></xp:br><xp:br></xp:br>
<!-- THIS IS MY PROMPT BUTTON -->
<xp:button value="Alert" id="button2">
<xp:eventHandler event="onclick" submit="false">
<xp:this.script><![CDATA[alert("Waring!")]]></xp:this.script>
</xp:eventHandler>
</xp:button>
<xp:br></xp:br><xp:br></xp:br>
<!-- THIS IS MY MOVABLE PANEL -->
<xp:panel id="myPan01"
style="height:120px;width:120px;background-color:rgb(0,64,128)">
<xp:this.attrs>
<xp:attr name="class" value="dragItem"></xp:attr>
</xp:this.attrs>
<xp:div style="text-align:center">
<xp:span style="font-weight:bold;color:rgb(255,255,255)">
</xp:span>
</xp:div>
<xp:div style="text-align:center">
<xp:span style="font-weight:bold;color:rgb(255,255,255)">
Move Me!
</xp:span>
</xp:div>
</xp:panel>
<script>
XSP.addOnLoad(function(){ $(".dragItem").draggable({ grid: [
40,40 ]}); })
</script>
<xp:br></xp:br>
<!-- THIS IS MY SAVE BUTTON -->
<xp:button value="Save" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete" immediate="false" save="true">
</xp:eventHandler>
<!-- THIS IS THE END... -->
</xp:button>
</xp:view>
字段1:
移动我!
addOnLoad(function(){$(“.dragItem”).draggable({grid:[
40,40 ]}); })
您通过标准HTML
标记包含jquery,这可能会导致问题,因为这将被放置在HTML正文而不是标题中。
使用XPage的资源属性。在XPage Resources属性中添加一些客户端JavaScript库,然后转到XPage的源代码,找到包含JavaScript库的xp
标记,并更改其URL,以便包含jquery资源
我不能100%确定这是否解决了您的问题,但由于您的代码看起来不错,因此值得一试。这只是一个粗略的猜测,但是否与会话相关,会话是否已过期?尝试使用extlib中的“Keep Session Alive”控件,看看是否有帮助。从你展示的代码来看,我的想法似乎不太可能,但值得一试。我有一些东西不起作用,因为服务器端代码被“遗忘”,而jQuery是客户端。我从未见过浏览器忘记页面中加载了代码。事实上,你有没有和firebug确认过jQuery在第二次不起作用时是否存在?使用Chrome的开发者工具(STRG+I)并查看一下控制台。我打赌有一些错误消息有助于跟踪问题。非常感谢,就是这样!这是我页面的修订代码