如何将所有打开的标签从 Safari 移动到 Firefox?

如何将所有打开的标签从 Safari 移动到 Firefox?

就我而言,我在 Safari 中打开了许多标签,我想将其移至 Firefox。我知道我可以在文本文件中记下所有 URL,然后在另一个浏览器中逐个打开它们。但我正在寻找任何快捷方式。

答案1

您可以使用以下 AppleScript:

告诉应用程序“Firefox”
    启用
    将 newTabURLs 设置为 takeSafariTabURLs()
    在 newTabURLs 中重复 tabURL
        打开位置标签URL
        延迟 1
    结束重复

结束告诉

在 takeSafariTabURLs() 上
    将 tabURL 设置为 {}
    告诉应用程序“Safari”
        在 Windows 中用 w 重复
            如果 w 的名称不是“”则——以防出现僵尸窗口
                在 w 的标签中用 t 重复
                    将 tabURL 设置为 t 的 URL
                    将 tabURL 的结尾设置为 tabURL

                结束重复
            万一
        结束重复
        返回 tabURL
    结束告诉
结束 takeSafariTabURLs

答案2

我尝试按照 Ramhound 提到的方法操作,结果发现它非常有用。我将所有书签保存在 Safari 的一个文件夹中,然后将书签导入 Firefox。这只是一个简单的过程。

答案3

进行微小更改以保留窗口。我也给出了要点...如果其他人想改进它。请参见https://gist.github.com/amanuel/81e70673b057687e904a248218c50ce2

    tell application "Firefox"
    activate
    set safariWindows to getSafariWindows() of me
    repeat with w in safariWindows
        set newTabURLs to takeSafariTabURLs(w) of me
        repeat with tabURL in newTabURLs
            open location tabURL
            delay 0.5
        end repeat
        tell application "System Events" to keystroke "n" using command down
        delay 1
    end repeat
end tell

on getSafariWindows()
    set safariWindows to {}
    tell application "Safari"
        repeat with w in windows
            if name of w is not "" then --in case of zombie windows
                set the end of safariWindows to w
            end if
        end repeat
        return safariWindows
    end tell
end getSafariWindows

on takeSafariTabURLs(w)
    set tabURLs to {}
    tell application "Safari"
        repeat with t in tabs of w
            set tabURL to URL of t
            set the end of tabURLs to tabURL
        end repeat
        return tabURLs
    end tell
end takeSafariTabURLs

相关内容