Невозможно перемещаться по HTML-странице через веб-приложение (скрипт Google Apps)

Я создал простое веб-приложение Google Apps Script с несколькими страницами (index.html, about.html). Страница index.html загружается нормально после развертывания веб-приложения. Однако когда я нажимаю ссылку «О нас», страница становится пустой, хотя URL-адрес обновляется правильно.

Код.gs

function doGet(e) {
  Logger.log('doGet function called');
  var params = e && e.parameter || {};
  var page = params.page || 'index';
  
  Logger.log('Page: ' + page);
  
  var html = HtmlService.createHtmlOutputFromFile(page);
  Logger.log('HTML output: ' + html.getContent());
  
  if (page === 'about') {
    Logger.log('About page loaded');
  }
  
  return html;
}

index.html

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <h1>Home Page</h1>
    <ul>
      <li><a href = "?page=about" target = "_top">About Us</a></li>
      <li><a href = "?page=new-reg">New Registration</a></li>
      <li><a href = "?page=investor">Investor Login</a></li>
    </ul>
  </body>
</html>

about.html

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <h1>About Us</h1>
    <p>This is the about page.</p>
    <ul>
      <li><a href = "?page=index">Home</a></li>
      <li><a href = "?page=new-reg">New Registration</a></li>
      <li><a href = "?page=investor">Investor Login</a></li>
    </ul>
  </body>
</html>

Проблема:

Что я пробовал:

  • Очистил кеш браузера.
  • Пробовал режим инкогнито.

Дополнительная информация:

Если я вручную введу строку запроса в исходный URL-адрес развертывания, это сработает: https://script.google.com/macros/s/AKfycbzitC6_N2hdCkcRQldH_7guyJ6p-FczxSBt5-OR-jdT/dev?page=about

Почему страница гаснет при нажатии на ссылку и как это исправить?

🤔 А знаете ли вы, что...
С JavaScript можно создавать расширения для различных платформ, таких как Adobe Acrobat и Microsoft Office.


1
56
1

Ответ:

Решено

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

  • Что касается Why does the page go blank when clicking the link, из Clicking the "About Us" link updates the URL to something like this: https://n-7zf3tmc56mjeqj3iwdea76zqxnq3d3a232oifby-0lu-script.googleusercontent.com/userCodeAppPanel?page=about The page goes blank instead of loading the about.html content., в случае href = "?page=about" URL-адрес становится перенаправленным URL-адресом. В данном случае я думаю, что необходим исходный URL. Из https://script.google.com/macros/s/AKfycbzitC6_N2hdCkcRQldH_7guyJ6p-FczxSBt5-OR-jdT/dev?page=about, как насчет использования https://script.google.com/macros/s/###/dev вместо https://n-7zf3tmc56mjeqj3iwde,,,?

Когда это будет отражено в сценарии показа, как насчет следующей модификации?

code.gs

function doGet(e) {
  Logger.log('doGet function called');
  var params = e && e.parameter || {};
  var page = params.page || 'index';

  Logger.log('Page: ' + page);

  var html = HtmlService.createTemplateFromFile(page);
  html.url = ScriptApp.getService().getUrl();
  var evaluatedHtml = html.evaluate();
  Logger.log('HTML output: ' + evaluatedHtml.getContent());

  if (page === 'about') {
    Logger.log('About page loaded');
  }

  return evaluatedHtml;
}

index.html

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <h1>Home Page</h1>
    <ul>
      <li><a href = "<?!= url ?>?page=about" target = "_top">About Us</a></li>
      <li><a href = "<?!= url ?>?page=new-reg">New Registration</a></li>
      <li><a href = "<?!= url ?>?page=investor">Investor Login</a></li>
    </ul>
  </body>
</html>

about.html

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <h1>About Us</h1>
    <p>This is the about page.</p>
    <ul>
      <li><a href = "<?!= url ?>?page=index">Home</a></li>
      <li><a href = "<?!= url ?>?page=new-reg">New Registration</a></li>
      <li><a href = "<?!= url ?>?page=investor">Investor Login</a></li>
    </ul>
  </body>
</html>
  • Благодаря этой модификации, когда вы нажимаете «О нас», используется URL-адрес {web apps URL}?page=about.

Примечание:

  • Если вы используете конечную точку exec, отразите последнюю версию сценария в веб-приложениях.

Ссылка:


Интересные вопросы для изучения

Регулярное выражение для проверки того, содержит ли ввод две заданные строки, а часть между ними не содержит ни одного элемента из набора указанных строкВ файле location.href намеренно отсутствуют имя пользователя и пароль при включении в URL-адрес?Расширение не загружается в коде Visual Studio — сообщения об отладке не отображаютсяКак добавить учащегося (@gmail.com) в класс Classroom, созданный внутри моей организации с помощью Apps Script?При использовании parseFloat невозможно вычислить сумму более 1 миллионаЕсть ли способ отобразить изображение в таблице HTML непосредственно из ячейки Google Таблиц?CSS имеет функцию, которая не работает, и не имеет селектора элементовКак использовать обратный радиус границы в верхней части карты? (ССС)Как я могу создать пунктирную линию из двух цветов: серого и светло-серого?Html и php или js выбираются с помощью запроса с относительным полем