我想创建一个简单的书签,它获取当前网页“location.ref”的 URL 并将其保存在 Google 电子表格中。保存后,我想留在当前网页上。
我知道写谷歌电子表格的唯一方法是使用谷歌应用脚本。所以我写了一个简单的脚本来做到这一点:
function doGet(request) {
var ss = SpreadsheetApp.openByUrl( "https://docs.google.com/spreadsheet/ccc?key=<MY-SPREADSHEET-ID>");
var sheet = ss.getSheets()[0];
var headers = ["Timestamp", "url"];
var nextRow = sheet.getLastRow();
var cell = sheet.getRange('a1');
var col = 0;
for (i in headers){
if (headers[i] == "Timestamp"){
val = new Date();
} else {
val = request.parameter[headers[i]];
}
cell.offset(nextRow, col).setValue(val);
col++;
}
return ContentService.createTextOutput(request.parameter.url)
.setMimeType(ContentService.MimeType.TEXT);
}
我将其发布为 webapp。我写了书签:
<a href="javascript:(
function(){
alert(window.open('https://script.google.com/macros/s/<MYWEBAPP>/exec?url='+encodeURIComponent(location.href), '_self'));
}
)();">
BOOKMARK
</a>
到目前为止,一切都很好。当我单击小书签时,它实际上可以工作,它会抓取当前网页的 URL 并将其保存在我的电子表格中。但是随后,Web 应用程序返回了一个文本响应,并且小书签显示了导致我离开当前网站的文本。
有没有办法忽略响应?GAS webapp 脚本要求我使用必须返回某些内容的 doGet()。有没有办法不从 GAS 脚本返回任何内容?或者,有没有办法我可以使用其他调用来替换 window.open 来调用允许我将响应存储在变量中并忽略它的 webapp?