Модальное окно скрипта Google Apps HTML - проблема с href ссылки - PullRequest
2 голосов
/ 05 августа 2020

У меня возникла странная проблема с модальным окном Google Apps Script HTML механизм анализа.

Минимальный воспроизводимый пример:

var ui = SpreadsheetApp.getUi();

var template = HtmlService.createTemplateFromFile('html/test');

var html = template.evaluate().setWidth(1920).setHeight(1080);
ui.showModalDialog(html, 'Test');

html/test.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <a href="https://test.com/#gid=0&range=A1:B1" target="_blank">https://test.com/#gid=0&range=A1:B1</a>
</body>
</html>

Ожидаемый результат в модальном окне: ссылка, которая указывает на https://test.com/#gid=0&range=A1:B1.

Фактическая ссылка неожиданно указывает на другой URL: https://test.com/#gid=0%E2%A6%A5=A1:B1.

Google Chrome инструменты разработчика показывают следующую ссылку HTML:

<a href="https://test.com/#gid=0⦥=A1:B1" target="_blank">https://test.com/#gid=0&amp;range=A1:B1</a>

Почему ссылка href перезаписывается? Можно ли что-нибудь сделать, чтобы Google Apps Script отображал ссылки как есть?

1 Ответ

2 голосов
/ 05 августа 2020

Попробуйте так:

gs:

function displayMyDialog() {
  var ui = SpreadsheetApp.getUi();
  var template = HtmlService.createTemplateFromFile('ah3');//my html file name
  var html = template.evaluate().setWidth(1200).setHeight(450);//change to fit my window
  ui.showModalDialog(html, 'Test');
}

Замените & на &amp;

html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <a href="https://test.com/#gid=0&amp;range=A1:B1" target="_blank">https://test.com/#gid=0&amp;range=A1:B1</a>
</body>
</html>

честно говоря, я не помню, где я это узнал.

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