Google App Maker, как создать функцию копирования в буфер обмена - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь скопировать текст из текстовой области в буфер обмена с помощью кнопки, которая запускает следующий скрипт. Я получаю предупреждение о скопированном тексте, но когда я пытаюсь вставить его куда-либо, значение не копируется.

function copmycomment() {
/*get the text area*/
  var copyCo = app.pages.NewPage.children.Panel2.children.tao;

  /*select the text area*/

  copyCo.focus();

    /*copy the value*/

    document.execCommand("copy");

 alert("copied the text:" + copyCo.value);
}

1 Ответ

0 голосов
/ 06 ноября 2018

В Google App Maker виджет TextArea - это объект, состоящий из двух элементов HTML; Метка и вход . Когда вы выполните эту строку:

var copyCo = app.pages.NewPage.children.Panel2.children.tao;

Вы фактически выбираете объект appmaker, а не элемент HTML, содержащий текст; Поэтому, когда эта строка кода выполняется:

copyCo.focus();

Вы не фокусируете текст, который хотите скопировать, и в результате document.execCommand("copy"); не работает.

Чтобы достичь того, что вам нужно, выполните следующие действия:

Сначала на тестовой странице вставьте виджет TextArea , а под ним - виджет Button .
Это должно выглядеть примерно так:
enter image description here

Затем добавьте следующий код в обработчик события onClick кнопки:

var textField = widget.parent.descendants.TextArea1.getElement().children[1];
textField.select();
document.execCommand('copy');
window.getSelection().removeAllRanges();

Обратите внимание:
В строке var textField = widget.parent.descendants.TextArea1.getElement().children[1]; деталь widget.parent.descendants.TextArea1 представляет путь к виджету TextArea, поэтому в зависимости от того, как вы это делаете, он может отличаться для вас.

Это должно быть все. Предварительный просмотр вашего приложения и текст должен быть скопирован в буфер обмена. Надеюсь, это поможет!

...