【发布时间】:2013-11-29 16:08:54
【问题描述】:
这是我所拥有的:
- 包含 jQuery 和 jQueryUI 的 Lotus 数据库 (8.5.3)
- form1 是只有一个字段的表单。
它设置为
- “打开时 - 自动启用编辑模式”
- “打开时 - 改为显示 XPage:xpage1”
- “在 Web 访问上 - 显示 XPage:xpage1”
- xpage1 是一个 xpage。它包含 :
- 一个输入框链接到 form1 中的字段
- 一个调用小脚本的按钮,只是 alert("some text")
- 页面中包含一个 jQuery 脚本。这是一个可拖动的面板。这就是它的全部。只是一个可以在页面上拖动的面板。
- view1是一个基于form1显示文档的视图
现在我的问题:
- 如果在我的浏览器(Chrome 或 IE)中启动 Xpage,它会正常运行:单击按钮时可以看到警报,可以在页面上拖动面板,可以填写字段,可以保存文件。
- 但是,当我稍后打开它时,Xpage 会打开并显示字段数据,但我的脚本不起作用:无法保存文档、移动面板、显示警报。
- 如果我在我的 Lotus 客户端中启动 Xpage,它可以工作!
- 如果我删除我的 jQuery 引用和我的可移动面板,其他脚本就可以工作。
我是不是忘记了什么?是某种已知问题吗?
这是我的 Xpage 源码,供参考:
<?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>
【问题讨论】:
-
只是一个疯狂的猜测,但是否与会话相关并且会话已过期?尝试使用 Ext Lib 中的“保持会话活动”控件,看看是否有帮助。从您展示的代码来看,我的想法似乎不太可能,但值得一试。我有一些事情不起作用,因为服务器端代码被“遗忘”,但 jQuery 是客户端。我从来没有见过浏览器忘记代码是随页面加载的。实际上,你有没有用firebug检查过jQuery第二次不起作用的时候?
-
使用 Chrome 的开发者工具 (STRG+I) 并查看控制台。我敢打赌,有一些错误消息有助于追查问题。
标签: xpages