Как (взломать и) развернуть окно рисования Google Doc на весь экран? - PullRequest
5 голосов
/ 08 июля 2019

Друзья инет,

Инструмент Google's Docs Intert Drawing работает, за исключением того факта, что он тратит впустую половину всех экранов 16: 9, поскольку он открывает окно принудительного квадрата, которое UNRESIZABLE , cripling все рисунки, которые предназначены для формата LANDSCAPE и / или PORTRAIT! Подумайте о всех стандартных форматах, таких как мониторы A4, A3, 16: 9.

Я задавал этот вопрос супер-пользователям, но безрезультатно. Никто, кажется, не знает ответ! Я прибегаю к опытным программистам, чтобы взломать наш путь к этому и планирую открыть награду в 500, как только это станет доступно для этого вопроса! Это существенная, но упускаемая из виду потенциальная часть Документов Google, которая была упущена.

Любые решения, обеспечивающие эту работу в собственном браузере Google Chrome, будут:

  • Награжден 500 бонусными баллами
  • Принят в качестве ответа

enter image description here

Ответы [ 4 ]

1 голос
/ 16 июля 2019

Я использую этот простой «взлом» с консоли. Просто откройте модальный чертеж> нажмите F12> Нажмите Консоль> и вставьте следующее js.

modal = document.getElementsByClassName('modal-dialog');
frame = modal[0].getElementsByTagName('iframe');

modal[0].style.width = window.innerWidth+"px";
modal[0].style.height = window.innerHeight+"px";
modal[0].style.top = 0;
modal[0].style.left = 0;
frame[0].width = window.innerWidth;
frame[0].height = window.innerHeight;
1 голос
/ 11 июля 2019

Boom! Как вы сказали, это взломать. Но это работает: F12-> Console-> Paste-> Введите

let modal = document.getElementsByClassName("sketchy-dialog")[0];
modal.style.width="100%";
modal.style.height="100%";
modal.style.left="0px";
modal.style.top="0px";
let content = document.getElementsByClassName("modal-dialog-content")[0];
content.style.height="100%";
let iframe;
let iframes = document.getElementsByTagName("iframe");
for(let x=0;x<iframes.length;x++)
{
    let elem = iframes[x];
    if(elem.src.startsWith("https://docs.google.com/drawings"))
    {
        iframe = elem;
    }
}
iframe.style.width="100%";
iframe.style.height="100%";
1 голос
/ 16 июля 2019

Я думаю, что самый простой способ - создать плагин расширения Chrome для решения этой проблемы.Я сделал пример того, как вы должны работать, конечно, в зачаточном состоянии, но для цели это нормально.Проверьте это на github (Загрузите zip, распакуйте, перейдите в chrome extensions и => «Загрузить распакованный», наслаждайтесь: D).Для более сложных решений вам нужно использовать API документа Google.

Пример кода

document.addEventListener('DOMContentLoaded', function () {
    let fullScreenBtn = document.getElementById('fullScreenBtn');
    fullScreenBtn.onclick = function (element) {
        function modifyDOM() {
            function setToFullScreen(iteration, drawer) {
                drawer.style.left = '0';
                drawer.style.top = '0';
                drawer.style.borderRadius = '0';
                drawer.style.width = '100%';
                drawer.style.height = '100vh';

                document.getElementsByClassName('modal-dialog-content')[iteration].style.height = '100vh';

                var iframe = drawer.getElementsByTagName("IFRAME")[0]
                iframe.width = '100%';
                iframe.height = '100%';

                var canvas = iframe.contentWindow.document.getElementById('canvas-container');

                 canvas.style.borderLeft = 'solid 2px red';
                 canvas.style.borderRight = 'solid 2px red';

            }

            var drawers = document.getElementsByClassName('modal-dialog');
            let drawerCount = drawers.length;
            if (drawerCount) {
                for (let i = 0; i < drawerCount; i++) {
                    setToFullScreen(i, drawers[i]);
                }
            } else {
                alert('First off all open the drawer!')
            }
            return document.body.innerHTML;
        }

        chrome.tabs.query({ active: true }, function (tabs) {
            var tab = tabs[0];
            chrome.tabs.executeScript(tab.id, {
                code: '(' + modifyDOM + ')();'
            }, (results) => {
                // console.log(results[0]);
            });

        });
    };

Если вы хотите, вы также можете изменить размер холста, но еслиВы делаете, это делает некоторые ошибки (как сказал @Anthony Cregan) ... Вы можете сделать с изменением кода в этом разделе

        var canvas = iframe.contentWindow.document.getElementById('canvas-container');

        canvas.style.left = '0';
        //canvas.style.position = ''; // works but in resizing elemnts bug 
        canvas.style.minWidth = '100%';

В действии

enter image description here

enter image description here

1 голос
/ 11 июля 2019

Я достиг этого, открыв в Chrome, нажав F11 (полноэкранный режим), F12 (консоль).Затем я переместился в dom на вкладке «Элементы»:

#canvas-container

, затем вручную установил стили элементов

left: 41px
width: 1787px

РЕДАКТИРОВАТЬ: к сожалению, последующие изменения, кажется, сбрасываютСтили, которые вы вводите вручную, может быть способ применить их после последующих действий рисования, но на данный момент это решение подходит только для отображения конечного результата, а не для рисования в полноэкранном режиме.

РЕДАКТИРОВАНИЕ РЕДАКТИРОВАТЬ: вы можете применить этидобавляя их к элементу на боковой панели стилей и сохраняя их с !important, но это приводит к тому, что функции рисования теряют свои координаты (например, инструмент «Перо» отводит от указателя вдоль оси x).

...