使用open進行訪問確實是很難實現的。
如果要使用AppleScript讀取HTML文件,那麼最好的方法是使用AppleScript告訴HTML編輯器爲您讀取HTML文件。這是AppleScript工作的基本方式。這就是爲什麼「告訴」是最重要的命令。這就是爲什麼你可以完成的讀取HTML文件到一個變量,在短短3行自己的目標:
tell application "BBEdit"
open (choose file)
set theHTMLSource to the text of document 1
close document 1
end tell
下面的腳本擴展了上述從所選文件夾中讀取HTML文件的任意數量。它適用於BBEdit 9,並且還應該使用BBEdit的免費版本,該版本名爲「TextWrangler」,可在Mac App Store中使用。或者你可以很容易地修改這個腳本,用於HyperEdit或TextEdit,或者任何你喜歡使用的支持AppleScript的HTML /文本編輯器。
tell application "Finder"
set theFolder to (choose folder)
set theFiles to every file of folder theFolder
set theHTMLSourceList to {}
repeat with theFile in theFiles
if the kind of theFile is equal to "HTML document" then
set theName to the name of theFile
tell application "BBEdit"
open file (theFile as text)
set theSource to the text of document 1
copy {theName, theSource} to the end of theHTMLSourceList
close document 1
end tell
end if
end repeat
end tell
當上面的腳本執行完畢,變量「theHTMLSourceList」填充了名字和HTML文件的整個文件夾的源代碼,就像這樣:
{{name of file 1, source of file 1}, {name of file 2, source of file 2}, {name of file 3, source of file 3}}
...依此類推,直到到任意數量的文件。但是,當然,您可以讓腳本以您喜歡的任何方式將HTML源代碼返回給您。關鍵在於支持AppleScript的HTML編輯器既可以讀取HTML,也可以設置AppleScript變量,因此您不必在小型AppleScript中編寫(調試和維護)自己的HTML閱讀器。
我仍然在'open for access'中得到同樣的錯誤,它不能將文檔文件「blablabla.html」輸入到「class fsrf」類型中。 – noio
我編輯了腳本。現在要求您選擇一個文件夾,以確保folderPath正確。將文件路徑轉換爲文本,然後將其顯式引用爲文件似乎可行。對不起,我不知道爲什麼在列表中使用別名不起作用,但可能是因爲按定義(?)列表項不是別名。我添加了一個條件,它可以防止加載圖片和其他二進制文件。我已經添加了一個函數processHtml來演示你可以用這個做什麼。 – Mark