2013-03-23 67 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,它會在新窗口或標籤中打開。如果你在很多頁面上使用它們,如果它們保持相同的名稱,它們將全部重用相同的標籤。