AppleScript创建URL&锚文本,作为URL类型数据传递给剪贴板

时间:2012-07-02 16:25:56

标签: url applescript clipboard

有没有办法获取文本标签和URL并使用Applescript将它们添加到Mac剪贴板,以便富文本应用程序将数据视为URL并在粘贴数据时生成链接的锚文本。

我有无标题的引用网址(通过代码生成),需要有一个“屏幕”标题(锚文本)。我可以创建URL和锚文本。但是,如何将它们组合在一起以便Mac剪贴板将数据视为URL?我试过了:

set the clipboard to "<a href=\"" & theURI & "\" target=\"_blank\">" & theAnchor & "</a>"

..但是当使用其他应用程序中的这些数据时,我得到了HTML字符串,而不是带有锚文本的链接作为可见的屏幕文本。

StandardAdditions有“URL”和“网页”类,但我看不到如何应用它们。这会编译但运行时会失败:

set myURL to theURI as URL
set myLinkAnchor to theAnchor as text
set linkURL to {URL: myURL, name: myLinkAnchor} as web page

2 个答案:

答案 0 :(得分:1)

AppleScript确实支持将十六进制编码的HTML放入剪贴板:

set the clipboard to «data HTML3c6120687265663d22687474703a2f2f7777772e69727261646961746564736f6674776172652e636f6d22207461726765743d225f626c616e6b223e4972726164696174656420536f6674776172653c2f613e»

这很圆润,但是如何做你想做的事情:

set theURI to "http://www.irradiatedsoftware.com"
set theAnchor to "Irradiated Software"
set the clipboard to "<a href=\"" & theURI & "\" target=\"_blank\">" & theAnchor & "</a>"
set theHEX to do shell script "pbpaste | hexdump -ve '1/1 \"%.2x\"'"
if theHEX is "" then
    beep
else
    run script "set the clipboard to «data HTML" & theHEX & "»"
end if

YMMV。我尝试将其粘贴到Word 2011中并且工作正常。我无法让Pages接受粘贴。此外,我尝试粘贴到一个新的电子邮件(Mail.app),链接很好,但你不能点击它。但是,收件人可以单击链接。

答案 1 :(得分:-1)

您不能假设所有应用程序都接受HTML并将其自动转换为可点击的字符串。您执行此操作的能力取决于目标应用程序处理富文本的方式。有些人可能会使用Cocoa的内置富文本区域类,而其他人可能拥有自己的完全自定义文本区域,每个区域都以自己的方式处理URL。您可以查看目标应用程序的字典,看它是否允许您以可识别的方式创建URL。