我有一个简单的 Lotus Notes XPage,其中只有一个可编辑的 RichText 对话框,该对话框使用 iframe 嵌入到更大的表单中。
较大的表单有一个提交按钮,它触发一些 javascript,最后是一个注释代理,它保存较大表单内的所有非富文本值。
当然,用户不必使用两个提交按钮,所以我不会为 XPage 提供(可见的)提交按钮。相反,我想使用 javascript 告诉 iframe 提交表单。
使用 iframe.document.forms[0].submit()
不起作用 - 表单确实已提交到 Notes 服务器,但 XPages 不会保存我所做的更改。
使用带有“保存数据源”操作的简单 XPage 按钮,保存就像一个魅力,但我不希望用户必须按正确的顺序单击两个按钮。
我还尝试了以下 javascript 代码,用 IBM 提交给服务器的值填充一些不可见的字段,但这也无济于事:
iframe.document.forms[0].elements["view:_id1:inputRichText1_h"].value = iframe.document.forms[0].elements["view:_id1:inputRichText1"].value;
iframe.document.forms[0].elements["view:_id1:inputRichText1_mod"].value = true;
iframe.document.forms[0].elements["$$xspsubmitid"].value="view:_id1:_id4";
iframe.document.forms[0].elements["$$xspsubmitscroll"].value="0|0";
iframe.document.forms[0].submit();
那么现在我问你:如何正确提交表单内容,而无需用户实际单击 XPages 按钮?我能否以编程方式触发对该按钮的点击,这与人类实际点击无关,除了人类?
最佳答案
有一个带有固定 id 的普通 div,在这个 div 中有一个计算文本,它将计算“保存按钮”的 clientsideid 并将其返回到 div 中
并使用此客户端 js 代码进行实际点击
var id=iframe.document.getElementById("button").innerHTML
var 按钮=iframe.document.getElementById(id)
按钮.点击()
关于javascript - 使用纯 JS 从外部提交 Lotus Notes XPage 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27529615/