Кликабельный URL в привязке / изображении не работает через скрипты Google, встроенные в классические сайты Google - PullRequest
0 голосов
/ 20 марта 2019

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

Проблема в том, что когда я нажимаю на изображение / якорь, я получаю страшное "sites.google.com отказалось подключиться". без ошибок, зарегистрированных в облачной платформе, но ошибка console.log: Refused to display 'https://sites.google.com/a/DOMAIN/SITE_NAME/PAGE_NAME/' in a frame because it set 'X-Frame-Options' to 'sameorigin'.

Как я встроил в классические сайты из скриптов:

  1. из сценариев => Опубликовать / развернуть как веб-приложение с настройками:

    • Запустите приложение как: пробовали как me , так и user
    • Кто имеет доступ к приложению: Любой, кто находится в DOMAIN
  2. от Scripts => Тестировать веб-приложение для получения последних результатов кода: так же, как при встраивании в классические сайты

  3. с Классических сайтов => Редактировать страницу / Вставить / Сценарий приложения, затем вставить URL опубликованного проекта Сценарии.

Вот код из скрипта Служб Google, который я встраиваю:

Файл Code.gs

function doGet() {
    return HtmlService.createTemplateFromFile('Buttons').evaluate()
      .setTitle('Client Home Page');
}

Файл Buttons.html

<!DOCTYPE html>
<html>
    <head>
        <?!= HtmlService.createHtmlOutputFromFile('stylesheet').getContent(); ?>
    </head>  
    <body>            
        <a href="https://sites.google.com/a/DOMAIN/SITES_NAME/PAGE_NAME/" imageanchor="1" target="" >
            <img src="https://sites.google.com/a/DOMAIN/IMAGE_LINK" border="0" alt="Image" >
        </a>
    </body>
</html>

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

  • Встраивание скрипта как гаджета iFrame. Результаты: пользовательский интерфейс вообще не отображается.
  • Добавление события onclick для получения URL-адреса (см. Изменения кода ниже). Результаты: встроенная область, в которой отображение кнопок при нажатии становится пустым без ошибок, зарегистрированных в Cloud Platform или консоли.

попытка fetchUrl: изменения в файле Code.gs

function doGet() {
    return HtmlService.createTemplateFromFile('Buttons').evaluate()
      .setTitle('Home');
}

function setUrl(url) {    
    var response = UrlFetchApp.fetch(url);
    return response.getContentText();    
}

попытка fetchUrl: изменение тега привязки в файле Buttons.html

<a href="" onclick="google.script.run.setUrl('https://sites.google.com/a/DOMAIN/SITES_NAME/PAGE_NAME/')" imageanchor="1" target="" >
    <img src="https://sites.google.com/a/DOMAIN/IMAGE_LINK" border="0" alt="Image" >
</a>

Любая помощь или понимание будет принята с благодарностью!

Leora

1 Ответ

1 голос
/ 21 марта 2019

Разобрался! Мне не хватало тега <base> в моем HTML-файле (<base target="_top">).

Хотя это автоматически предоставляется в любом новом HTML-файле, который вы создаете в Сценариях Служб Google, я скопировал и вставил код, написанный на VS Code, поэтому пропустил его.

Как только я добавил его обратно, все работает как положено. Оставим это здесь на случай, если кто-то еще столкнется с этой проблемой.

Большое спасибо всем, кто пытался разобраться в этом ...

Leora

...