2

Я хочу обработать событие ondrop для Документов Google со сценарием приложений AddOn.Событие «Drop» с сценарием приложений для Google Doc AddOn

Я вижу, что в Документах Google предусмотрена функция перетаскивания, с помощью которой мы можем легко перетаскивать изображения с сайта images.google.com в google doc. Я хочу обработать это событие drop by AddOn, который я разрабатываю.

Пробовал найти встроенный способ обработки события drop, но google не предоставляет его на данный момент. Я пробовал много других способов, таких как HTML5 DnD и т. Д., Но поскольку addon отображает как iframe, он не может получить доступ к doc html. window.parent не помогите.

Любая помощь будет appriciated

+0

Пробовали ли вы с помощью HTML5 Web Storage? Если вы можете получить все, что захотите, в веб-хранилище HTML5, вы можете получить его с боковой панели. Я бы использовал Session Storage, а не Local. [HTML5 Webstorage] (http://www.w3schools.com/html/html5_webstorage.asp) Вам нужно добавить таймер на боковой панели для опроса о существовании ваших данных в хранилище сеансов. Если это звучит так, как будто это может сработать для вас, дайте мне знать. Можете ли вы разместить свой код, который получает изображение? –

+0

@SandyGood На данный момент ничего не получается, что моя проблема :(Я хочу запускать событие всякий раз, когда изображение попадает в документ. Google не предоставляет никакого события капли. У нас есть какой-то другой способ сделать это? – RAJ

+0

Не знаю, я не использовал перетаскивание. –

ответ

1

Я не впадать в те же вопросы, с помощью перетаскивания API. Возможно, это связано с тем, что вы установили <base target="_top">. Нижеприведенный сценарий был написан в документе google. Просто перетащите изображение из изображений Google, и оно отобразится в диалоговом окне.

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 Doc (не на моей боковой панели надстройки)? – RAJ

+0

Нет никакого события, doc сам. Только на окне, которое вы контролируете. –

+0

Да, вот что я делаю сейчас, однако, я пытался, если бы мог это сделать из самого документа. Кстати, спасибо за вашу помощь :) – RAJ

 Смежные вопросы

  • Нет связанных вопросов^_^