создать боковую панель или удалить функции исследования данных или простое дополнение Publi sh в листах Google - PullRequest
0 голосов
/ 13 апреля 2020

Мне нужна боковая панель в Google Sheets, которую я могу использовать для размещения некоторых html с обратными вызовами. Я пробовал различные подходы, подробно описанные ниже, но все они привели к проблемам.

I Я смог взломать боковую панель исследования, чтобы поместить содержимое вверху:

    explore_bar = document.querySelector('.waffle-sidebar-container');
    explore_bar.style.width='200 px';
   explore_content_container = document.querySelector('.waffle-sidebar-content');
   explore_content_container.insertAdjacentHTML('beforebegin',
    '<div id="jim-links-container" style="height: 400px;"></div>');

Затем я могу щелкнуть и открыть панель исследования, и мой div становится доступным. Проблема с этим подходом состоит в том, что контент исследования все еще присутствует и заметно замедляет работу. Я попытался просто удалить содержание исследования, но это вызывает ошибку страницы и вызывает перезагрузку страницы. Я пытался найти способ отключить любые вызовы, чтобы изменить панель исследования, но это было за пределами моих javascript навыков.

Альтернативный подход - использовать скрипт Google для создания боковой панели. Это работает, но только для текущей таблицы. Я пытался выяснить, как сделать этот скрипт доступным для всех моих электронных таблиц, но столкнулся с проблемами, пытаясь сделать его частным дополнением. Из того, что я могу сказать, я должен либо опубликовать сценарий c и просмотреть go и, возможно, где-то заплатить, либо мне нужно создать организацию.

Вот лучшие инструкции, которые я нашел до сих пор (обратите внимание на шаг «создать организацию»): Аддон публикации сценариев Служб Google для внутреннего использования

У меня есть Я нашел несколько других SO вопросов по этому вопросу, и ни один из них не кажется точным или говорит что-то вроде «вам нужно создать дополнение»

Я начал go вместе с процессом создания дополнения. У меня сложилось впечатление, что для того, чтобы сделать код закрытым, нужно создать организацию. Похоже, Google Identity позволит вам создать организацию (бесплатно), но теперь она запрашивает информацию о моей компании (хорошо, я думаю, что я бизнес?) И мое доменное имя (ух-о). Я хочу, чтобы это был относительно простой процесс, который могли бы использовать другие, и этот процесс совместного использования скриптов становится нелепым. Возможно, я упускаю что-то, что облегчает это?

Редактировать: В качестве альтернативы другие инструкции предложили мне просто изменить свой тип проекта с проекта сценария на проект Google Code. Однако после создания проекта Google Code и попытки переключения моего кода на новый проект мне сказали (после вставки нового номера проекта в «Ресурсы - проект облачной платформы» в редакторе сценариев), что мне нужны разрешения OAUTH, которые также Похоже, это требует формального пересмотра кода.

В качестве альтернативного подхода я могу просто добавить код боковой панели. На данный момент я запустил эти команды в консоли:

wtf = document.getElementsByTagName('body');
wtf2 = wtf[0];
//Creates a div tag at the end of the body
wtf2.appendChild(document.createElement('div'));

Как только это было сделано, я щелкнул правой кнопкой мыши по моему недавно созданному div в средстве просмотра элементов в консоли разработчика, выбрал "edit html" и вставил this:

<div class="script-application-sidebar" aria-labelledby="title3pumi:2n7" tabindex="0" role="region" docs-stickyfocus="true" style="top: 64px; height: 405px; right: 56px;">
   <div class="script-application-sidebar-header">
      <div class="script-application-sidebar-title" id="title3pumi:2n7">Sheets</div>
      <div class="script-application-sidebar-close" tabindex="0" title="Close sidebar" aria-label="Close sidebar" role="button">
         <div class="docs-icon goog-inline-block ">
            <div class="docs-icon-img-container docs-icon-img docs-icon-close-white" aria-hidden="true">&nbsp;</div>
         </div>
      </div>
   </div>
   <div class="script-application-sidebar-content"></div>
</div>

Вставленный HTML получен из кода, созданного с использованием кода скрипта Google. Проблема в том, что оно не оснащено инструментами, и поэтому основное окно листов не изменяется соответствующим образом, а боковая панель не изменяется соответствующим образом (например, высота, скорее всего, будет неправильной). Кнопка закрытия тоже не работает. В худшем случае я мог бы использовать этот подход и немного переместить боковую панель влево, чтобы была видна полоса прокрутки (в настоящее время она закрыта, в идеале полоса прокрутки будет двигаться влево).

Это мой сценарий (gs ) код для справки:

function showSidebar() {

  var html = HtmlService.createHtmlOutput('<!DOCTYPE html><html><head><base target="_top"></head><body><div>test</div></body></html>')
    .setTitle('Sheets');

  SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
      .showSidebar(html);

}

Моя конечная цель - иметь пустую боковую панель в Google Sheets, которая настраивает существующие элементы так, чтобы они не были скрыты. Я могу взломать боковую панель «исследовать», но не знаю, как удалить обратные вызовы исследования. Без удаления обратных вызовов все замедляется, потому что обратные вызовы исследования слишком медленные. Я могу использовать Google Script, но я не знаю, как установить скрипт на всех своих листах, не будучи организацией или не проходя формальную проверку надстройки, которая, по сути, просто запускает боковую панель. Я могу буквально создать тег div и вручную добавить его в DOM, но тогда все еще скрыто. Итак, как мне получить эту пустую боковую панель на стороне Google Sheets, которая не скрывает ничего (например, полосу прокрутки, меню значков и т. Д. c.)?

Редактировать: Публикация частного скрипта Google Apps была бы одним из решений этой проблемы, но я не думаю, что это возможно. Я опубликовал этот конкретный c вопрос здесь: повторно использовать скрипт или опубликовать sh частный аддон скрипта Google листов без gsuite или являющийся бизнесом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...