Sé cómo incluir archivos CSS o JS usando el script de la aplicación en un script web. pero de esa manera incluye el contenido de los archivos en la página lode.
Mi pregunta, ¿es posible incluir una página html parcial dentro de la página abierta actualmente?
secuencia de comandos de la aplicación para incluir CSS o JS
/* @Include JavaScript & CSS & HTML-Partial-Views */ function include(filename) { return HtmlService.createHtmlOutputFromFile(filename).getContent(); }y uso asi
<?!= include('Css'); ?>y aquí está mi intento.
html
<button onclick="getList("users")">show some html content</button> <div id="users"></div> <script> function getList(users){ var listUsers = google.script.run.showHtml(users); // how to return showHtml result [list of users] for (var i; i <= listUsers.length; 1++) { document.querySelector("#users").innerHTML += <div>listUsers[i]</div>; } } </script>gs
function users(sheetName, pageName){ // get users from sheet var ss= SpreadsheetApp.openById("435yh35h45b35nh6hg5bwh455j"); var dataSheet = ss.getSheetByName(sheetName); var dataRange = dataSheet.getDataRange().getValues(); return dataRange; }De uno de los fragmentos de código
// cómo devolver el resultado showHtml [lista de usuarios]
Prueba esto:
<button onclick="getList('users')">show some html content</button> <div id="users"></div> <script> function getList(users){ var listUsers = google.script.run .withSuccessHandler((listUsers) => { let list = ''; for (var i; i < listUsers.length; i++) { list += `<div>${listUsers[i]}</div>\n`; } document.querySelector("#users").innerHTML = list; }) .showHtml(users); } </script>Cambios hechos
"users" por 'users'withSuccessHandler con una función de flecha como devolución de llamada. La función de flecha crea una cadena usando una declaración for (porque se usó en el código original) que incluye una etiqueta div usando un literal de plantilla.