Есть ли веб-сайт, который может конвертировать Javascript в AMP Html (запрос Shopify)

#javascript #shopify #amp-html #shopify-app

Вопрос:

Плагин: Shopsheriff

Проблема: Моя страница AMP не позволяет мне добавлять «Подписку на рассылку», потому что «Подписка на рассылку» — это Javascript. Javascript в настоящее время несовместим с AMP.

  • У меня нет опыта в кодировании, поэтому мне нужен конвертер какого-то типа для изменения кода

Желаемые результаты: Я хотел бы преобразовать / изменить свой Javascript «Регистрация на рассылку» в скрипт, совместимый с AMP HTML.

Если бы вы могли мне чем — нибудь помочь, я был бы чрезвычайно благодарен!

Вот код:

 //Some variable sets
var otgServerpath = "https://onetapsignup.com/otg/";
var otgSettings;
var otgPageURL = window.location.href;
var otgShopURL = Shopify.shop;

if(typeof($otjq) == 'undefined' ){
    if (typeof(window.jQuery) == 'undefined') {
        (function() {
            // Load jquery script if doesn't exist
            var script = document.createElement("SCRIPT");
            script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js';
            script.type = 'text/javascript';
            script.onload = function() {
                $otjq = window.jQuery;  // $otjq is our jQuery
                $ = window.jQuery;  // $otjq is our jQuery
                loadOneTapGoogle();
            };
            document.getElementsByTagName("head")[0].appendChild(script);
        })();
    }else{
        if (typeof(window.jQuery.ajax) == 'undefined') {
            (function() {
                // Load jquery script if doesn't exist
                var script = document.createElement("SCRIPT");
                script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js';
                script.type = 'text/javascript';
                script.onload = function() {
                    $otjq = window.jQuery;  // $otjq is our jQuery
                    $ = window.jQuery;  // $otjq is our jQuery
                    loadOneTapGoogle();
                };
                document.getElementsByTagName("head")[0].appendChild(script);
            })();
        }else{
            $otjq = window.jQuery;  // $otjq is our jQuery
            $ = window.jQuery;  // $otjq is our jQuery
            loadOneTapGoogle();  
        }               
    }
}

var otgSettingsGlobal;
function loadOneTapGoogle(argument) {
    //otgPostAjax();
    $otjq.ajax({
         url:  otgServerpath   'ajax_get_settings.php',
         dataType: "json",
         type: 'POST',
         data: {
             'domain': otgShopURL,
             'page_url': otgPageURL,
             'theme_id': Shopify.theme.id,
             'theme_store_id': Shopify.theme.theme_store_id
         },
         error: function(data){
            //console.log(data);
         },
         success: function (otgSettings) {
            otgSettingsGlobal = otgSettings;
            otgPostAjax(otgSettings);
         }
     });
}

function otgPostAjax(otgSettings) {
    // Add One Tap Google Iframe

    if (otgSettingsGlobal.flag == 1) {
        var otgIframe = document.createElement("iframe");
        otgIframe.id = 'otg_iframe';
        if ($(window).width() < 600) {
            var mob = 1;
            otgIframe.style = 'width: 100%; height: 380px; position: fixed;bottom: 0px;left: 0px; border: none; z-index: 2147483647; background: transparent;';
        }else{
            var mob = 2;
            otgIframe.style = 'width: 450px; height: 600px; position: fixed;top: 0px;right: 0px; border: none; z-index: 2147483647; background: transparent;';
        }
         /*
        if ($(window).width() < 600) {
            var mob = 1;
            otgIframe.style = 'opacity: 0;width: 100%; height: 100%; position: fixed; bottom: 0px;left: 0px; border: none; z-index: 2147483647;background: #0d0d0dc4';
        }else{
            var mob = 2;
            otgIframe.style = 'opacity: 0;width: 100%; height: 100%; position: fixed; top: 0px;right: 0px; border: none; z-index: 2147483647;background: #0d0d0dc4';
        }*/
        otgIframe.src = otgServerpath   'otg.php?mob=' mob 'amp;store_id='   otgSettingsGlobal.store_id;
        
        document.getElementsByTagName("body")[0].appendChild(otgIframe);
        setTimeout(function(){
            $("#otg_iframe").css("opacity","1");
        },2000)
        window.addEventListener("message", function(event) {
            if (typeof event.data === 'string' amp;amp; event.data.startsWith("onetap_")) {
                //console.log("Its string and onetap");
                $("#otg_iframe").remove();
            }
        });
        /*$("body").on("click",function(){
            $("#otg_iframe").remove();
        });*/
    }
}
 

Комментарии:

1. Я думаю, вам лучше попросить разработчиков приложений предоставить код, совместимый с AMP, в конце концов, вы пользуетесь сервисом приложений бесплатно или платно?

2. @Onkar Приложение бесплатное, и я проконсультировался с разработчиками приложений, но они все еще работают над ним. Я просто хочу ускорить процесс, если это возможно. Спасибо вам за ваш вклад! 🙂