Applescript:预定义变量“tab”按字面解释?

问题描述 投票:0回答:3

根据https://www.oreilly.com/library/view/applescript-in-a/1565928415/re94.html

tab
在创建字符串时可以用作预定义变量但是当我这样做时结果是只是文字字符串tab.

set tsv to tsv & "scrolltime:" & tab & "23"

给予

什么???是 O'Reilly 错了还是我遗漏了一些明显的东西?


编辑:Apple自己对AppleScript中预定义文本常量的引用https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/conceptual/ASLR_fundamentals.html#//apple_ref/doc/uid/TP40000983 -CH218-BAJBDEJI 同意 O'Reilly 的观点。

variables constants applescript predefined-variables
3个回答
0
投票

不要修改 tab Applescript 变量。

set tab to "whatever"
return "scrolltime:" & tab & "23"

> scrolltime:whatever23

你可以把它放回去

set tab to ASCII character 9

0
投票

正如我在评论中所怀疑的那样。 Safari 定义了自己的

tab
属性,具有完全不同的功能。

要解决此问题,您必须在 Safari

character id 9
块中使用
tell

set tsv to tsv & "scrolltime:" & character id 9  & "23"

0
投票

它不是 Safari 的属性,而是类 «class bTab»。 AppleScript 具有属性«属性选项卡»。 @vadian 已经展示了这种情况下的最佳解决方法。在其他解决方法中,您可以明确地它是 AppleScript 的属性而不是 Safari 的类。

我不止一次遇到过类似的情况,当一个类被编译而不是应用程序的 tell 块中的属性时(错误地)。在制表符的情况下,相当于character id 9.

一般来说,这样的混淆,不会有等价物,你就得用这样的技巧:

tell application "Safari"
    set tsv to tsv & "scrolltime:" & (run script "«property tab »") & "23"
end tell
© www.soinside.com 2019 - 2024. All rights reserved.