Shopify "mailto:" 标签问题
Shopify "mailto:" tag issue
我在 shopify 商店中遇到外部 link 问题。
我正在通过我的应用程序注入脚本,以显示带有锚标记的气泡,用于将用户重定向到给定 link。但是 shopify 正在将锚标记更改为以下 link,如下所述:-
<a href="/cdn-cgi/l/email-protection#076e69616847736274732964686a"><span style="color:#999999;">??Click here </span></a>
这 link 导致 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>
我还没有添加电子邮件-decode.min.js 但它会自动添加到我的回复中。
link 应该像这样正确显示(期望的结果):-
<a href="mailto:info@test.com"><span style="color:#999999;">Click here </span></a>
请帮助我。
我不使用 Shopify,所以很遗憾我无法对此进行测试,但似乎这是由服务器处理的事情。解决方法可能是执行以下操作:
在您的 success:
函数中,在 $('body').append(data);
之后添加以下内容:
document.getElementById('bubbleChatBox').childNodes[0].setAttribute("href", "mailto:info@test.com");
这使用 Javascript 将您想要的 HTML 加载到文档中,然后由服务器处理并由客户端接收。如果有效请告诉我!
我不知道如何解决 Shopify 的问题。但是一个技巧让我的代码工作了。
我只是将 "mailto" 更改为“@mailto”,同时在数据库中保存并在 shopify 商店中注入脚本之后。我将“@mailto”更改为 "mailto" 并且有效。
我使用了以下代码使其工作。
<script>
$("#bubbleChatBox a").each(function() {
var text = $(this).attr("href");
$(this).attr("href",text.replace("@mailto", "mailto"));
});
</script>
看起来这家商店在 Cloudflare 后面并使用他们的 Email Address Obfuscation 功能。这可以在 Cloudflare 控制面板中禁用,也可以根据具体情况使用这些标签禁用:
<!--email_off--><a href="mailto:foo@bar.test"></a><!--/email_off-->
我在 shopify 商店中遇到外部 link 问题。
我正在通过我的应用程序注入脚本,以显示带有锚标记的气泡,用于将用户重定向到给定 link。但是 shopify 正在将锚标记更改为以下 link,如下所述:-
<a href="/cdn-cgi/l/email-protection#076e69616847736274732964686a"><span style="color:#999999;">??Click here </span></a>
这 link 导致 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>
我还没有添加电子邮件-decode.min.js 但它会自动添加到我的回复中。
link 应该像这样正确显示(期望的结果):-
<a href="mailto:info@test.com"><span style="color:#999999;">Click here </span></a>
请帮助我。
我不使用 Shopify,所以很遗憾我无法对此进行测试,但似乎这是由服务器处理的事情。解决方法可能是执行以下操作:
在您的
success:
函数中,在$('body').append(data);
之后添加以下内容:document.getElementById('bubbleChatBox').childNodes[0].setAttribute("href", "mailto:info@test.com");
这使用 Javascript 将您想要的 HTML 加载到文档中,然后由服务器处理并由客户端接收。如果有效请告诉我!
我不知道如何解决 Shopify 的问题。但是一个技巧让我的代码工作了。
我只是将 "mailto" 更改为“@mailto”,同时在数据库中保存并在 shopify 商店中注入脚本之后。我将“@mailto”更改为 "mailto" 并且有效。
我使用了以下代码使其工作。
<script>
$("#bubbleChatBox a").each(function() {
var text = $(this).attr("href");
$(this).attr("href",text.replace("@mailto", "mailto"));
});
</script>
看起来这家商店在 Cloudflare 后面并使用他们的 Email Address Obfuscation 功能。这可以在 Cloudflare 控制面板中禁用,也可以根据具体情况使用这些标签禁用:
<!--email_off--><a href="mailto:foo@bar.test"></a><!--/email_off-->