2

事件我想處理ondrop事件谷歌文檔Apps腳本附加元件。句柄「降」與Google Apps腳本谷歌文檔附加元件

我可以看到,谷歌文檔提供拖放功能,使我們可以很容易地從images.google.com拖動圖像到Google文檔。我想通過我正在開發的AddOn來處理這個放置事件。

試圖找到一些內置的方法來處理事件下降,但谷歌沒有提供它到現在爲止。我曾嘗試過很多其他方式,如HTML5 DnD等,但作爲插件呈現爲iframe,它無法訪問doc html。 window.parent不幫忙。

任何幫助將被調查

+0

你嘗試使用HTML5 Web存儲?如果您可以在HTML5 Web存儲中獲得任何想要的內容,那麼您可以從邊欄中檢索它。我會使用會話存儲而不是本地。 [HTML5 Webstorage](http://www.w3schools.com/html/html5_webstorage.asp)您需要在邊欄中添加一個計時器,以便在會話存儲中查詢您的數據是否存在。如果這聽起來像它可能適合你,讓我知道。你可以發佈你的代碼來獲取圖像嗎? –

+0

@SandyGood沒有越來越像截至目前,我的問題:(我想觸發每當圖像被丟棄到文檔的事件。谷歌沒有提供任何下降的事件。我們有一些其他的方式來做到這一點? – RAJ

+0

不知道,我還沒有用過拖放 –

回答

1

我沒有遇到使用拖放API的相同問題。這可能與確保您設置<base target="_top">有關。下面的腳本是用谷歌文檔編寫的。只需從谷歌圖片中拖出圖片,它就會顯示在對話框中。

code.gs

function onOpen() { 
    var menu = DocumentApp.getUi().createMenu("Get Image"); 
    menu.addItem("Open Dialog", "openDialog").addToUi(); 
} 

function openDialog(){ 
    var html = HtmlService.createHtmlOutputFromFile('index'); 
    DocumentApp.getUi().showModelessDialog(html, "drag n drop") 
} 

的index.html

<!DOCTYPE html> 
<html> 
    <head> 
    <base target="_top"> 
<style> 
span { 
    display: inline-block; 
} 
img { 
    width: 100%; 
} 
</style> 
    </head> 
    <body> 
    Drag Image Here<br> 
    <span><img id="img" heigth=></span> 
    </body> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
    <script> 
$(document).on('dragover', function(e) {e.preventDefault();return false;}); 
$(document).on('drop', function(e) { 
    e.preventDefault(); 
    e.originalEvent.dataTransfer.items[0].getAsString(function(url){ 
     var parser = document.createElement('a'); 
     parser.href = url; 
     if(parser.hostname === "www.google.com"){ 
      var src = parser.search.split("?")[1].split("&")[0].split("=")[1]; 
      $("#img").attr("src",src); 
     }else{ 
      alert("please select an image from google images") 
     } 

    }); 
}); 
    </script> 
</html> 
+0

如果我把圖片放在Google文檔上(不在我的附加工具欄上),它會起作用嗎? – RAJ

+0

沒有沒有事件發生時,文檔本身,只有在你控制的窗口上 –

+0

是的,這就是我目前正在做的事情,但是,我試圖如果我能從文檔本身做到這一點。順便說一句,感謝您的幫助:) – RAJ