在 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_WebV
的 bounds
,我在布局上找不到它,但在脚本中提到了它。每次我 运行 脚本时打印的边界都不同。是平常还是不寻常?我的来源也是 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 次试验后退出脚本。
这是我第一次遇到 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_WebV
的 bounds
,我在布局上找不到它,但在脚本中提到了它。每次我 运行 脚本时打印的边界都不同。是平常还是不寻常?我的来源也是 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 次试验后退出脚本。