我正在尝试在Filemaker WebDirect上使用一些webviewer。我想通过webviewer上的按钮调用filemaker中的脚本。它在专业版中效果很好,但我不确定我需要在网络直接使用的网址协议。尝试从webdirect中的webviewer调用filemaker脚本时应该使用的格式是什么?
答案 0 :(得分:1)
您需要对此进行测试,因为我还没有对其进行测试,但我相信当您在WebDirect解决方案中使用webviewer时,webviewer实际上会显示iframe标记,并且webviewer的内容可以正常工作与网页上的任何其他iframe一样,即它不再是WebDirect应用程序的一部分。
您可以在WebDirect解决方案的浏览器界面中查看,方法是右键单击webviewer并选择"检查元素"。这应该打开浏览器的开发人员工具,并在整个HTML结构中向您展示webviewer的元素。 webviewer应该是一个iframe。
所有这些都说,如果它确实将webviewer的内容视为iframe,因此iframe的内容不在WebDirect解决方案之内,这意味着您从webviewer内容进行的任何通信都需要从外部进行通信使用您的FileMaker解决方案通过XML自定义Web发布。这就像站在你家里面,伸出窗户,打开你的前门,抓住你想要的东西。
这意味着你需要:
然后你可以(理论上我还没有尝试过这样做)使用包含带有XML自定义Web发布语法的url的链接来执行脚本。您可以在FileMaker Server文档PDF fms13_cwp_xml.pdf
中找到语法说明。目前我无法找到在线语法的良好链接,但您可以搜索它。 PDF中概述的基本语法是:
<scheme>://<host>[:<port>]/fmi/xml/<xml_grammar>.xml[?<query string>]
并调用脚本如下:
http://myfmsdomainname.com/fmi/xml/fmresultset.xml?-script=theScriptIwantToFire
我的网址结构可能已关闭。
无论如何,听起来它可能是屁股的痛苦,但它可能是一个解决方案!祝你好运!
答案 1 :(得分:0)
这很棘手,因为您必须通过FMServer与Webdirect客户端进行通信!
使用webviewer中网页的FMServer PHP界面与服务器进行通信。您的网页可以: 1)直接在客户端将监视的服务器中设置一个值 2)如果必须调用脚本然后调用服务器上的脚本,您的客户端仍然必须监视一个值。例如在您的网页上使用php API。设置数据库连接(有关示例,请参阅FMServer文件夹中的API文档),然后调用:
$newperformscript =& $fm->newPerformScriptCommand($layoutName, 'scriptname',$scriptParameters);
$result = $newPerformScript->execute();
然后,您的Webdirect客户端需要监控该更改。当Webdirect与webviewer一起布局时,您的客户端可以使用filemaker脚本步骤通过计时器主动监视值的变化:
Install OnTimer [Interval:secs]
当您的客户端检测到您所做的更改后,请执行操作。
注意:您必须将客户端的ID传递给webviewer,并且您的webviewer必须将该ID传递回服务器,并且您的客户端必须监控该ID,以便所有客户都不会#39 ; t响应变化。您可以使用GET通过URL将您选择使用的客户ID传递给webviewer。
如果您的服务器是本地服务器,那么如果您的Install OnTimer计时器设置为,则会在一秒钟内检测到更改。 使用Filemaker,你所做的事情远非理想......如果可能,我建议你研究一个不同的UI范例。