Разделение строк и жирный текст в окне ui.alert в скрипте Google Apps - PullRequest
3 голосов
/ 09 апреля 2020

Я чувствую, что это должно быть довольно просто, но я ничего не могу найти по этому поводу. Я хочу, чтобы мое сообщение, которое всплывало в окне ui.alert, выделяло определенные слова и разделяло строку в , на новые строки. Вот код, который у меня есть:

function send(){
  var ui = SpreadsheetApp.getUi();
  var bccSend = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('main_gen').getRange(2,2).getValue(); //value example is xxx@gmail.com, yyy@gmail.com
  var bccSendReplace = bccSend.toString().replace(/,/g,"<br>");
  var response = ui.alert('You are about to send this to the following email address(es): \n\n' + bccSendReplace + '\n\n Click OK to send, otherwise, close this box or click Cancel to abort.', ui.ButtonSet.OK_CANCEL);
}

bccSendReplace - это то, что я хочу анализировать через запятую в новые строки. Вместо этого код просто заменяет запятую на <br>. Я также хотел бы, чтобы весь текст в bccSendReplace был жирным. Любые идеи? Спасибо!

1 Ответ

3 голосов
/ 09 апреля 2020
  • Вы хотите использовать HTML теги для метода alert(prompt, buttons) в Class Ui.
  • Вы хотите установить 'You are about to send this to the following email address(es): \n\n' + bccSendReplace + '\n\n Click OK to send, otherwise, close this box or click Cancel to abort.' для жирного шрифта.

Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

Точка модификации:

  • К сожалению, на данном этапе HTML нельзя использовать для метода alert(prompt, buttons) в классе Ui. Как обходной путь, как насчет использования настраиваемого диалога с методом showModalDialog в Class Ui?

Когда ваш скрипт модифицируется, он выглядит следующим образом.

Измененный скрипт :

Пожалуйста, скопируйте и вставьте следующий скрипт и запустите функцию send. При этом открывается диалог. При нажатии кнопки ok и кнопки отмены запускаются clickOk() и clickCancel() соответственно.

function send(){
  var ui = SpreadsheetApp.getUi();
  var bccSend = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('main_gen').getRange(2,2).getValue();
  var bccSendReplace = bccSend.toString().replace(/,/g,"<br>");

  const str = 'You are about to send this to the following email address(es): \n\n' + bccSendReplace + '\n\n Click OK to send, otherwise, close this box or click Cancel to abort.';
  const html = `
    <b>${str}</b><br>
    <input type="button" value="ok" onClick="google.script.run.withSuccessHandler(() => google.script.host.close()).clickOk()">
    <input type="button" value="cancel" onClick="google.script.run.withSuccessHandler(() => google.script.host.close()).clickCancel()">
  `;
  ui.showModalDialog(HtmlService.createHtmlOutput(html), 'sample');
}

function clickOk() {
  // do something;
}

function clickCancel() {
  // do something;
}

Примечание:

  • Этот измененный сценарий является простым сценарием. , Поэтому, пожалуйста, измените его для вашей реальной ситуации.
  • Пожалуйста, запустите сценарий с включением V8.

Ссылки:

Если я неправильно понял ваш вопрос и это не то направление, которое вам нужно, я приношу свои извинения.

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