25

我想知道是否可以下载并包含 jsapi 库,但不是由 google.com 托管,托管在我的本地计算机上。因为我的项目可能无法访问 Web。

4

5 回答 5

25

你不能。

您可以将其下载jsapi.js并保存在本地计算机中,但仍会参考 google.com 上的在线版本。您可以通过打开 jsapi.js 代码来查看它。

有关更多信息,请参阅此 Google 开发人员文章

我可以离线使用图表吗?

不; 您的计算机必须能够实时访问 http://www.google.com/jsapi才能使用图表。这是因为您的页面所需的可视化库是在您使用它们之前动态加载的。加载相应库的代码是包含的 jsapi 脚本的一部分,当您调用 google.load() 方法时会调用该代码。我们的服务条款不允许您下载 google.load 或 google.visualization 代码以离线使用。

我可以在本地或 Intranet 上下载和托管图表代码吗?

对不起; 我们的服务条款不允许您下载和保存或托管 google.load 或 google.visualization 代码。

于 2014-04-01T08:02:09.150 回答
12

虽然你可以这样做并且 dowlnoad jsapi 所有其他代码仍然在谷歌服务器、可视化库等上,但它不是在服务方面,它禁止它。

我可以离线使用图表吗?不; 您的计算机必须能够实时访问http://www.google.com/jsapi才能使用图表。这是因为您的页面所需的可视化库是在您使用它们之前动态加载的。加载相应库的代码是包含的 jsapi 脚本的一部分,当您调用 google.load() 方法时会调用该代码。我们的服务条款不允许您下载 google.load 或 google.visualization 代码以离线使用。我可以在本地或 Intranet 上下载和托管图表代码吗?对不起; 我们的服务条款不允许您下载和保存或托管 google.load 或 google.visualization 代码。

于 2013-06-06T14:26:56.780 回答
2

jsapi.js单独的文件不会有任何好处,因为当您使用它加载内容时,它会请求大量其他脚本和 css 文件。

因此,如果您真的想使用 Google Charts 使您的应用程序离线,请首先将 包含jsapi.js在您的应用程序中并监控它通过网络请求的其他文件(使用Fiddler之类的东西)。然后也下载它们并包含在您的应用程序中。请记住,这可能是一个深兔子洞 IYKWIM。

另请记住,以上所有内容都违反了 Google 使用其图表的条款和条件

于 2014-01-17T12:13:12.250 回答
1

绝对可以,尽管只是作为概念证明。只需打开以下文件并将其保存为 jsapi.js 到您的本地计算机:

http://www.google.com/jsapi

然后,从您的 HTML 页面添加对它的引用:

    <script type="text/javascript" src="jsapi.js"></script>

请参阅以下示例:

http://www.marlenynunez.com/files/jsapi/horizo ​​ntal-news-ticker4.html 从回答到问题 [问题]:使用 google jsapi 的 jquery 水平新闻自动收报机

但是,正如其他人所指出的,您可能仍需要 Web 访问,并且 API 的服务条款不允许以这种方式使用它。

于 2012-03-07T21:36:44.273 回答
0

嗨,您已经使用以下概念在 anguarjs 应用程序中本地添加文件,并且它可以正常工作以用于开发目的..

/* global angular */
(function(){
    angular.module('googlechart')
        .provider('googleJsapiUrl', googleJsapiUrlProvider);

    function googleJsapiUrlProvider() {
        var protocol = 'http:';
        var url = '//localhost/yourApplicationName/Scripts/chart/jsapi.js';

        this.setProtocol = function (newProtocol) {
            protocol = newProtocol;
        };

        this.setUrl = function (newUrl) {
            url = newUrl;
        };

        this.$get = function () {
            return (protocol ? protocol : '') + url;
        };
    }
})();
于 2016-03-02T13:10:55.077 回答