添加 JQuery 对自定义函数的引用
Add JQuery reference to custom function
我想测试在 Google 表格的自定义函数中调用 API。 code.gs
如下:
function TApi(input) {
var url = "https://api.nytimes.com/svc/search/v2/articlesearch.json";
url += '?' + $.param({
'api-key': "cdaa59fea5f04f6f9fd8fa551e47fdc4",
'q': "MIT"
});
$.ajax({
url: url,
method: 'GET',
}).done(function(result) {
return result;
console.log(result);
}).fail(function(err) {
throw err;
});
}
但是当我在 sheet 单元格中调用 =TAPI()
时,它 returns 一个错误 ReferenceError: "$" is not defined. (line 22).
我想我们需要添加一个 link 到 JQuery。有人知道怎么做吗?
您只能在使用 HTML 服务的客户端脚本上使用 JQuery。它在服务器端不可用。在 HTML Services Best Practices.
中有关于使用它的简介
这不可能。您必须使用 HtmlService 构建 Web 应用程序或自定义 UI(边栏或对话框),并在客户端上进行处理。因为您的代码 运行 在 Google 服务器上,所以没有 'window' 或 'document' 对象。 DOM 和 BOM 只能在客户端访问。
事实上,您可以随意做以下小实验。打开您的浏览器控制台(我正在使用 Chrome 开发者工具)并输入
console.log(this); //this logs global object
这是输出
这是 jQuery 用于导航 DOM 树的 'window' 对象。 jQuery 只是一个建立在现有 DOM 操作方法和 CSS 选择器之上的 JS 库。
接下来,打开任何 GAS 文件,运行 以下函数并检查日志 (Ctrl + Enter):
function test() {
Logger.log(this);
}
这是输出。
如您所见,此上下文中的全局对象由 Google 定义的伪 类(GAS 服务)组成。
您可以使用 urlFetch 应用程序。试试下面的代码片段
function fetchURL() {
try {
var url = "https://api.nytimes.com/svc/search/v2/articlesearch.json";
url += '?api-key=cdaa59fea5f04f6f9fd8fa551e47fdc4&q=MIT';
var params = {
'method': 'get',
'contentType': 'application/json',
'muteHttpExceptions': true
}
var response = UrlFetchApp.fetch(url, params);
Logger.log(response)
} catch (e) {
Logger.log(e)
}
}
我想测试在 Google 表格的自定义函数中调用 API。 code.gs
如下:
function TApi(input) {
var url = "https://api.nytimes.com/svc/search/v2/articlesearch.json";
url += '?' + $.param({
'api-key': "cdaa59fea5f04f6f9fd8fa551e47fdc4",
'q': "MIT"
});
$.ajax({
url: url,
method: 'GET',
}).done(function(result) {
return result;
console.log(result);
}).fail(function(err) {
throw err;
});
}
但是当我在 sheet 单元格中调用 =TAPI()
时,它 returns 一个错误 ReferenceError: "$" is not defined. (line 22).
我想我们需要添加一个 link 到 JQuery。有人知道怎么做吗?
您只能在使用 HTML 服务的客户端脚本上使用 JQuery。它在服务器端不可用。在 HTML Services Best Practices.
中有关于使用它的简介这不可能。您必须使用 HtmlService 构建 Web 应用程序或自定义 UI(边栏或对话框),并在客户端上进行处理。因为您的代码 运行 在 Google 服务器上,所以没有 'window' 或 'document' 对象。 DOM 和 BOM 只能在客户端访问。
事实上,您可以随意做以下小实验。打开您的浏览器控制台(我正在使用 Chrome 开发者工具)并输入
console.log(this); //this logs global object
这是输出
这是 jQuery 用于导航 DOM 树的 'window' 对象。 jQuery 只是一个建立在现有 DOM 操作方法和 CSS 选择器之上的 JS 库。
接下来,打开任何 GAS 文件,运行 以下函数并检查日志 (Ctrl + Enter):
function test() {
Logger.log(this);
}
这是输出。
如您所见,此上下文中的全局对象由 Google 定义的伪 类(GAS 服务)组成。
您可以使用 urlFetch 应用程序。试试下面的代码片段
function fetchURL() {
try {
var url = "https://api.nytimes.com/svc/search/v2/articlesearch.json";
url += '?api-key=cdaa59fea5f04f6f9fd8fa551e47fdc4&q=MIT';
var params = {
'method': 'get',
'contentType': 'application/json',
'muteHttpExceptions': true
}
var response = UrlFetchApp.fetch(url, params);
Logger.log(response)
} catch (e) {
Logger.log(e)
}
}