setxframeoptionsmode setsandboxmode script htmlservice google from example createhtmloutputfromfile apps google-apps-script modal-dialog sidebar

setsandboxmode - ¿Cómo actualizar html en la plantilla de la barra lateral de la plantilla de diálogo modal con javascript en Google Apps Script?



setsandboxmode google apps script (1)

Tengo un formulario en un diálogo modal. Después de enviar un formulario, ese diálogo se cierra y realiza algunas acciones en segundo plano. Después de cerrar el cuadro de diálogo modal, también deseo actualizar html en la barra lateral ( sin actualizar la barra lateral ). Tengo un div con id. De "cargador" en la barra lateral con clase oculta (lo que impide que sea visible). En el cuadro de diálogo modal, quiero eliminar la clase oculta del div "cargador". ¿Cómo accedo a ese div "cargador" de la plantilla de diálogo modal ?


Puede usar la sesión del navegador Almacenar, establecer un temporizador y continuamente "sondear" para obtener información disponible.

Gracias a un comentario, se sugirió una variación que elimina la necesidad de sondeo:

jquery

$(window).bind(''storage'', function(e){if(e.key === "newValuesWereEntered"){doSomething()}});

Etiqueta de script:

<script> //Use a timer to keep checking for a completed action from another dialog var theTimer; window.setTheTimer = function() { //To Do - Hide the Spinner if (typeof(Storage) === "undefined") { alert(''HTML5 Storage is not supported. This App will not work in this browser. Please update your browser.''); return; } try { window.sessionStorage.setItem("newValuesWereEntered","n"); //Make sure check value is reset } catch(e) { alert(e.error + '' You may have this apps cookies blocked in this browser, and/or this browser tab. Check cookie blocking.''); return; }; theTimer = window.setInterval(monitorForTheResponse, 500); //Every 1/2 second, check for response value }; window.monitorForTheResponse = function() { var was_a_newValueEntered,dlgInfo; was_a_newValueEntered = window.sessionStorage.getItem("newValuesWereEntered"); if (was_a_newValueEntered === ''y'') {//Dialog just wrote value to window.sessionStorage window.sessionStorage.setItem("newValuesWereEntered","n");//Reset clearTimeout(theTimer);//turn off timer //Get submitted values dlgInfo = window.sessionStorage.getItem("newValuesToTransfer"); //To Do - Run code to display new value }; }; </script>

El diálogo que tiene el valor para pasar a la barra lateral debe guardar ese valor en el almacenamiento de la sesión

window.theValueWasSavedOrEntered = function() { var arry,objectOfNewValues,strJSON; try{ if (typeof(Storage) !== "undefined") {//Browser has local storage window.sessionStorage.setItem("newValuesWereEntered","y"); //Set to yes objectOfNewValues = {}; objectOfNewValues.valueOne = arry[0]; objectOfNewValues.valueTwo = arry[1]; strJSON = JSON.stringify(objectOfNewValues); window.sessionStorage.setItem("newValuesWereEntered","y"); //Set to yes window.sessionStorage.setItem("newValuesToTransfer", strJSON); }; google.script.host.close(); } catch(e) { SendErr({''message'':''ERROR: '' + e.stack + '' message: '' + e.message}); }; };