Как включить пользовательский Js в веб-сайт AMP для уже созданного веб-сайта в Laravel? - PullRequest
0 голосов
/ 23 февраля 2020

Я использую AMP на уже созданном веб-сайте в Laravel. Я начал с базовых c шагов, я внес следующие изменения в свой файл layout.blade. php (в теге head):

- добавил это сверху:

<!doctype html>

- Включенный усилитель в теге html.

<html amp>

- Включенные скрипты, необходимые для AMP.

<script async src="https://cdn.ampproject.org/v0.js"></script>)

- Добавленный метатег

<meta charset="utf-8">

- Добавлен тег ссылки:

<link rel="canonical" href="{{ url()->current() }}">

- Добавлен метатег:

<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">

- Добавлен тег стиля

<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>

После этого я заменил все теги изображений на

<amp-img src="/img/logo.svg" alt="logo" width="55" height="32"></amp-img>

Следующая ошибка была CSS, чтобы быстро исправить и сохранить мой CSS только в текущем месте, я включил его таким образом:

<style amp-custom="">
    @php include ('css/app.css') @endphp
</style>

И в моем CSS я удалил весь! Важный атрибут, и ошибка CSS была исправлена.

- Следующая ошибка js:

Custom JavaScript is not allowed. (see https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml#html-tags)

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

  1. Использование тега amp-script:

    <meta name="amp-script-src" content="sha384-MTL2W61Pv6p46ZR8-bKL7vjQ6yWS36CH_bBqhG1eu8DVUD5wVPDCdPiuaCN7mrzW" />
    <amp-script width="200" height="50" script="hello-world">
        <button>Hello amp-script!</button>
    </amp-script>
    <script id="hello-world" type="text/plain" target="amp-script">
         @php include ('js/app.js') @endphp
    </script>
    

    При использовании этого метода у меня возникла одна трудность, связанная с размером JS внутри тега amp-script предопределено, мы не можем его превысить. Вот почему мне пришлось прервать этот метод. Есть ли способ изменить это так, чтобы я не получил эту ошибку?

  2. Следующий метод, который я попробовал, с помощью amp-iframe, с этим я могу включить все JS на моей странице, но при этом я ничего не могу изменить в родительском документе

    amp-iframe width = 300 height = 300 sandbox = "allow-scripts" layout = "responseive" frameborder = "0 "src =" js_file_path_with_https ">

Пожалуйста, дайте мне знать, что я должен сделать здесь, чтобы исправить эту ошибку. Или есть какой-либо другой способ включить мой Js?

Примечание: в мой пользовательский файл js включены различные библиотеки: jQuery, Bootstrap, wheelindicator et c. Спасибо

...