2013-03-23 68 views
3

我想创建一个简单的小书签,它抓取当前网页“location.ref”的URL并将其保存在Google Spreadsheet中。保存后,我想保留在当前网页上。将网址保存在Google电子表格中的小书签

我知道写入Google Spreadsheet的唯一方法是使用Google App脚本。所以我写了一个简单的脚本,就是这样做的:

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); 
} 

我发布了这个web应用程序。我写了书签:

<a href="javascript:(

    function(){ 
    alert(window.open('https://script.google.com/macros/s/<MYWEBAPP>/exec?url='+encodeURIComponent(location.href), '_self')); 

    } 

)();"> 

BOOKMARK 

</a> 

到目前为止好。实际上,当我点击书签时,它确实能够抓取当前网页的网址并将其保存在我的电子表格中。但是,然后,webapp返回一个文本响应,小书签显示文本,导致我离开我的当前网站。

有没有办法忽略回应? GAS webapp脚本要求我使用doGet(),它必须返回一些东西。有没有办法从GAS脚本中返回任何东西?另外,有没有办法我可以使用一些其他的调用来取代window.open来调用web应用程序,这将允许我将响应存储在变量中并忽略它?

+0

如何使用书签创建弹出窗口?这样它就不会离开主页面 – 2013-06-19 22:00:18

回答

0

除了使用window.open,您可能会考虑使用XMLHttpRequest发送HTTP GET请求。

请参阅here的使用方法。

0

_self更改为其他内容,例如, bookmarker,它会在新窗口或标签中打开。如果你在很多页面上使用它们,如果它们保持相同的名称,它们将全部重用相同的标签。