Домашние кнопки обмена с использованием jQuery - PullRequest
0 голосов
/ 03 июля 2018

РЕШЕНИЕ

Удалить комментарии в скриптах ... Комментарии сделали оставшуюся часть скрипта частью комментариев.

Вопрос

Мне удалось создать скрипт jQuery, чтобы поделиться отдельными страницами с некоторыми социальными средами. Причина этого заключается в том, чтобы получать меньше файлов cookie, поскольку некоторые поставщики кнопок общего доступа используют файлы cookie, и эти файлы cookie могут конфликтовать с новым GDPR.

Код ниже работает как талисман в jsfiddle (кроме части электронной почты), но когда я загружаю код на свой веб-сайт, появляются значки, но не работают! Там не появляется всплывающее окно или другие вещи.

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

Ниже приведен код, который можно найти в этом рабочем jsfiddle: jsfiddle

HTML

<div id="share-buttons">
  <span class="social-share facebook" style="cursor: pointer;"><img src="https://simplesharebuttons.com/images/somacro/facebook.png" alt="Facebook" /></span>
  <span class="social-share twitter" style="cursor: pointer;"><img src="https://simplesharebuttons.com/images/somacro/twitter.png" alt="Twitter" /></span>
  <span style="cursor: pointer;"><a href="javascript:;" onclick="window.print()"><img src="https://simplesharebuttons.com/images/somacro/print.png" alt="Print" /></a></span>
  <span class="social-share email" style="cursor: pointer;"><img src="https://simplesharebuttons.com/images/somacro/email.png" alt="Email" /></span>
</div>

JQuery / JavaScript

<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js"></script>
<script>
$(document).ready(function() {
setShareLinks();

function socialWindow(url) {
  var left = (screen.width - 570) / 2;
  var top = (screen.height - 570) / 2;
  var params = "menubar=no,toolbar=no,status=no,width=570,height=570,top=" + top + ",left=" + left;
  // params = "";
  window.open(url,"NewWindow",params);
}

function setShareLinks() {
  var pageUrl = encodeURIComponent(document.URL);
  var tweet = encodeURIComponent($("meta[property='og:description']").attr("content"));

  $(".social-share.facebook").on("click", function() {
    url = "https://www.facebook.com/sharer.php?u=" + pageUrl;
    socialWindow(url);
  });

  $(".social-share.twitter").on("click", function() {
    url = "https://twitter.com/intent/tweet?url=" + pageUrl + "&text=" + tweet;
    socialWindow(url);
  });

  $(".social-share.email").on("click", function() {
    url = "mailto:?Subject=" + tweet + "&amp;Body=" + pageUrl;
    socialWindow(url);
  });

}
});
</script> 

Кнопки общего доступа «позаимствованы» у simplesharebuttons.com

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Ваш скрипт (на сайте) перепутан с комментариями. Используйте это:

$(document).ready(function() {

setShareLinks();

function socialWindow(url) {
    var left = (screen.width - 570) / 2;
    var top = (screen.height - 570) / 2;
    var params = "menubar=no,toolbar=no,status=no,width=570,height=570,top=" + top + ",left=" + left;
    window.open(url, "NewWindow", params);
}

function setShareLinks() {
    var pageUrl = encodeURIComponent(document.URL);
    var tweet = encodeURIComponent($("meta[property='og:description']").attr("content"));
    $(".social-share.facebook").on("click", function() {
        url = "https://www.facebook.com/sharer.php?u=" + pageUrl;
        socialWindow(url);
    });
    $(".social-share.twitter").on("click", function() {
        url = "https://twitter.com/intent/tweet?url=" + pageUrl + "&text=" + tweet;
        socialWindow(url);
    });
    $(".social-share.email").on("click", function() {
        url = "mailto:?Subject=" + tweet + "&amp;Body=" + pageurl;
        socialWindow(url);
    });
}

});
0 голосов
/ 03 июля 2018

У вашей проблемы может быть несколько причин:

  • вы не запускаете свою основную функцию после загрузки jquery ... в вашем примере кода у вас нет $ (document) .ready (function () {setShareLinks ()}) ... Да, JSFiddle работает, но jsfiddle автоматически помещает ваш JS-код в функцию window.onload () ...
  • simplesharebuttons.com, возможно, использует sharethis API, поэтому в вашей консоли Chrome появляется ошибка «stLight не определен».
  • иногда с такими кодами общего доступа / отслеживания у вас есть несовместимость с другими кодами JS и расширение Chrome, включающее режим инкогнито ... попробуйте отключить все эти расширения, или перезапустите свой сайт в режиме инкогнито Chrome, или используйте новый браузер (например, портативный браузер)
  • и в соответствии с тем, как вы кодируете свой window.open, всплывающие окна могут быть заблокированы браузером (текущее правило в браузерах гласит: «если всплывающее окно не открывается прямым действием пользователя, то оно блокируется»)
...