在 FileMaker 中使用布局对象属性和变量

Working with layout object attributes and variables in FileMaker

这是我第一次遇到 GetLayoutObjectAttribute,我遇到了严重的问题。我的变量 $web 不会设置。我认为这是因为 PD_WebV 不是要引用的正确对象名称,但我不知道如何找到正确的对象名称。我在点击 Edit Layout 时找不到对象名称,所以有人知道如何找到布局对象名称吗?

Loop
     Pause/Resume Script [Duration (seconds): 1]
     Set Variable[$Web; Value: GetLayoutObjectAttribute("PD_WebV";"content")]
     If[$Web="done"]
          #execute if statements

编辑后:

经过一些故障排除后,我发现 PD_WebV 是要引用的正确对象名称并且它被正确引用了,所以我的新问题是为什么脚本没有转到行 If[$Web="done"] 我该如何解决? Ss 我的 If 声明没有评估它应该是什么?我的 $web 变量从未设置为 done 还是问题完全不同?问题可能与我的 WebDirect 共享设置有关吗?任何指导都会有所帮助。谢谢。

之后,编辑之后: 所以现在我的应用程序已经超过 Set Variable[$Web; Value: GetLayoutObjectAttribute("PD_WebV";"content")],变量 $web 只等于 <HTML></HTML>。有谁知道不使用 javascript 来测试 html 标签内部的方法吗?

另外,我打印了 webViewer PD_WebVbounds,我在布局上找不到它,但在脚本中提到了它。每次我 运行 脚本时打印的边界都不同。是平常还是不寻常?我的来源也是 about:blank 所以看起来我不是从 URL

采购的

啊,我重读了你的问题。

要为您的 webviewer 设置对象名称,以便 GetLayoutObjectAttribute 函数起作用,您需要在拥有 webviewer 时在检查器的 Name 字段中进行设置选择。

例如:

之后你的变量应该被填充。

注意

它将填充来自浏览器html的所有html,即不是布尔值true/false,如您的条件建议。

我不确定你到底想完成什么,但为了能够从你的网络查看器中确定结果,你需要解析 HTML 看看它的内容是否包含您要查找的内容或在设置 webviewer 的代码中,触发一个 javascript 函数,该函数使用 FileMaker url.

回调 FileMaker 文件

Is my $web variable never set to done or is the issue something completely different?

如果你正在做:

Set Variable[$Web; Value: GetLayoutObjectAttribute("PD_WebV";"content")]

那么唯一一次

$Web="done"

will return true 是当加载到您的网络查看器中的网页 完全 字符串 "done" (实际上,这永远不会)。

我已经在评论中建议您测试:

PatternCount ( $webpage ; "</html>" )

这是假设您希望后续步骤仅在页面加载完成后执行。整个脚本看起来像这样:

Loop
     Pause/Resume Script [Duration (seconds): 1]
     Set Variable[$Web; Value: GetLayoutObjectAttribute("PD_WebV";"content")]
     Exit Loop If [ PatternCount ( $webpage ; "</html>" ) ]
End Loop     
# execute statements

您可能还想在循环中添加一个计数器并在 n 次试验后退出脚本。