Shopify mailto: проблема с тегами

У меня проблема с внешней ссылкой в ​​магазине shopify.

Я ввожу скрипт через свое приложение для отображения пузыря с тегом привязки для перенаправления пользователя на заданную ссылку. Но shopify меняет тег привязки на следующую ссылку, как указано ниже: -

 <a href="/cdn-cgi/l/email-protection#076e69616847736274732964686a"><span style="color:#999999;">??Click here </span></a>

И эта ссылка вызывает ошибку 404 и страница не найдена.

Это мой код js

if (typeof jQuery == 'undefined') {
    var headTag = document.getElementsByTagName("head")[0];
    var jqTag = document.createElement('script');
    jqTag.type = 'text/javascript';
    jqTag.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js';
    headTag.appendChild(jqTag)
} else {
    var $ = jQuery.noConflict()
}
var headTag = document.getElementsByTagName("head")[0];
var jqTag = document.createElement('script');
jqTag.type = 'text/javascript';
jqTag.src = '//cdn.jsdelivr.net/emojione/1.5.2/lib/js/emojione.min.js';
headTag.appendChild(jqTag)

$(document).ready(function(){
    var shop_name = Shopify.shop;
    $.ajax({
        url:'https://deepak.com/client/ajax_response.php',
        type:'post',
        data:{store_name:shop_name},
        success:function(data){
            if(data != '0'){
                $('body').append(data);
            }
        },
        error:function(){
            console.log('Network error');
        }
    })
});

и возвращенный ответ

<div id="bubbleChatBox"><a href="/cdn-cgi/l/email-protection#c5acaba3aa85b1a0b6b1eba6aaa8"><span style="color:#999999;">Click here </span></a>
</div><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>

И я не добавил email-decode.min.js, но он добавляется автоматически к моему ответу.

Ссылка должна отображаться правильно (желаемый результат): -

<a href="mailto:[email protected]"><span style="color:#999999;">Click here </span></a>

Пожалуйста помогите.


person Deepak Lakhara    schedule 11.10.2018    source источник
comment
нам нужен ваш код   -  person delboy1978uk    schedule 11.10.2018
comment
@Deepak Lakhara может быть какое-то другое приложение js изменится ... Я просто предполагаю   -  person Sachin Sarola    schedule 11.10.2018
comment
@ delboy1978uk Пожалуйста, посмотрите мой код.   -  person Deepak Lakhara    schedule 11.10.2018
comment
ни один из этих кодов не имеет отношения к генерации этого тега <a>.   -  person delboy1978uk    schedule 11.10.2018
comment
Что такое https://deepak.com/client/ajax_response.php - это URL-адрес, указывающий на какую-то функцию shopify, или что-то, что вы написали сами? Если второе, то что именно вы делаете в этом скрипте?   -  person misorude    schedule 11.10.2018


Ответы (3)


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

  1. В вашей success: функции после $('body').append(data); добавьте следующее:

    document.getElementById('bubbleChatBox').childNodes[0].setAttribute("href", "mailto:[email protected]");
    

Это использует Javascript для загрузки желаемого HTML в документ ПОСЛЕ того, как он будет обработан сервером и получен клиентом. Пожалуйста, дайте мне знать, если это сработает!

person Justin T.    schedule 11.10.2018
comment
Спасибо за ответ. Ссылка создается следующим образом: - prntscr.com/l4ty4r Я могу попросить пользователя добавить вот так. другое решение, могу ли я подать заявку. - person Deepak Lakhara; 11.10.2018
comment
Извините, я не могу попросить клиента сделать с div и выше скороговоркой. - person Deepak Lakhara; 11.10.2018
comment
@Deepak Lakhara: После того, как вы разместили свой код, я понял, что вы не можете добавить этот элемент. Попробуйте мое отредактированное решение и дайте мне знать, работает ли оно. - person Justin T.; 11.10.2018

Я не понял, как решить проблему с Shopify. Но уловка заставила мой код заработать.

Я просто меняю "mailto" на "@mailto" при сохранении в базе данных и после внедрения скрипта в магазин shopify. Я изменил "@mailto" на "mailto", и это сработало.

Я использовал следующий код, чтобы он заработал.

<script>
    $("#bubbleChatBox a").each(function() {
        var text = $(this).attr("href");
        $(this).attr("href",text.replace("@mailto", "mailto"));
    });
</script>
person Deepak Lakhara    schedule 12.10.2018

Похоже, что магазин стоит за Cloudflare и использует их Функция запутывания адреса электронной почты. Это можно отключить в панели управления Cloudflare или в индивидуальном порядке с помощью следующих тегов:

<!--email_off--><a href="mailto:[email protected]"></a><!--/email_off-->
person Josh Brown    schedule 13.10.2018