1

这可能是一个简单的,但我无法弄清楚。如何像window.open()在 Javascript 中一样从扩展脚本在主浏览器中打开网页?

我的目标是 After Effects,并希望它可以在 OS X 和 Windows 上运行。

4

5 回答 5

3

正如 Dirk 所提到的,在 After Effects 中,您可以简单地使用系统对象来完成它。但是,您需要几件事:

  • 检查脚本是否可以访问网络:

    if (app.preferences.getPrefAsLong("Main Pref Section", "Pref_SCRIPTING_FILE_NETWORK_SECURITY") != 1)
    {
        alert("Please tick the \"Allow Scripts to Write Files and Access Network\" checkbox if Preferences > General");
    
        // Then open Preferences > General to let people tick the checkbox
        app.executeCommand(2359);
    
        // Here you should check again if they ticked it, and choose to continue or stop ...
    }
    
  • 检查操作系统:

    var os = system.osName;
    if (!os.length)
    {
        // I never remember which one is available, but I think $.os always is, you'll have to check
        os = $.os;
    }
    app_os =  ( os.indexOf("Win") != -1 )  ?  "Win" : "Mac"
    
  • 操作系统相关的系统调用:

    var url = "http://aescripts.com";
    
    if ( app_os == "Win" )
    {
        system.callSystem("explorer " + url);
    }
    else
    {
        system.callSystem("open " + url);
    }
    
于 2013-07-30T12:39:23.400 回答
2

如果您可以访问 CSInterface.js:

cep.util.openURLInDefaultBrowser("http://www.google.com")
于 2015-05-01T01:50:06.417 回答
1

一种独立于应用程序的方法是将操作系统的 URL 表示写入文件,然后执行()该文件。

在 Mac 上,这将是一个 .webloc 文件。底层格式为“plist binary”,如果您更喜欢生成xml,请从浏览器地址拖放创建示例webloc并转换:

plutil -convert xml1 ~/Desktop/sample.webloc

要调用该 webloc,请运行 ExtendScript

File("~/Desktop/sample.webloc").execute()
于 2013-07-16T20:35:52.960 回答
0

您可以在本地计算机上执行任何操作 - 命令行和 VBS 文件中的任何其他内容,您可以从 javascript 启动 vbs 文件,如下所示:

function RunScriptVBS(whatscriptname){
    app.doScript(File(whatscriptname), ScriptLanguage.VISUAL_BASIC);
}

这是您的 vbs 脚本:

Dim objShell
Set objShell = CreateObject("WScript.shell")
objShell.Run ("http://www.somewhere.com")
set objShell = nothing
于 2013-07-16T02:57:05.320 回答
0

问题的范围显然已经细化到 After Effects (AE),所以我添加了另一个特定于该应用程序的答案。

在我的机器上,AE CS6 不会生成对象模型文件以供 ExtendScript Toolkit 显示。请自行重试,对象模型查看器在ESTK的帮助菜单中。

无论如何,ESTK 数据浏览器确实有效。如果您以 AE 为目标,您将看到几个对象和类。最后检查数据浏览器面板弹出菜单中的更多菜单项。我更深入地查看了应用程序对象本身(那里没有 openUrl()),还发现了一个“系统”对象。展开它,你会看到几个有趣的方法。

以下脚本在 Mac 上打开一个 URL。我没有尝试过Windows,也许它甚至是一样的。

system.callSystem("open http://www.google.com")

由于这是我第一次启动 AfterEffects,我可能错过了更好的方法。

于 2013-07-26T12:33:07.703 回答