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引用和可移动面板,其他脚本就会工作
我忘了什么吗?这是某种已知的问题吗

以下是我的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>

字段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)并查看一下控制台。我打赌有一些错误消息有助于跟踪问题。非常感谢,就是这样!这是我页面的修订代码