У меня возникла странная проблема с модальным окном 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:
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.
https://test.com/#gid=0&range=A1:B1
Фактическая ссылка неожиданно указывает на другой URL: https://test.com/#gid=0%E2%A6%A5=A1:B1.
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&range=A1:B1</a>
Почему ссылка href перезаписывается? Можно ли что-нибудь сделать, чтобы Google Apps Script отображал ссылки как есть?
href
Попробуйте так:
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'); }
Замените & на &
&
&
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>
честно говоря, я не помню, где я это узнал.