使用 jQuery 的自制分享按钮
Homemade share buttons using jQuery
解决方案
删除脚本中的评论...评论使剩余脚本成为评论的一部分。
问题
我设法创建了一个 jQuery 脚本来与一些社交媒体分享个人页面。这样做的原因是为了获得更少的 cookie,因为一些共享按钮提供商使用 cookie,而这些 cookie 可能与新的 GDPR 冲突。
下面的代码在 jsfiddle 中很有用(电子邮件部分除外),但是当我将代码上传到我的网站时,图标显示但不起作用!没有弹出 window 或其他东西。
有人可以快速查看下面的代码,看看我做错了什么吗?
下面的代码也可以在这个有效的 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 + "&Body=" + pageUrl;
socialWindow(url);
});
}
});
</script>
分享按钮 "borrowed" 来自 simplesharebuttons.com
您的问题可能有多种原因:
- 您在 jquery 加载后没有启动主函数...在您的示例代码中,您没有 $( document ).ready(function() { setShareLinks() }) 。 ..是的,JSFiddle 可以工作,但是 jsfiddle 会自动将您的 JS 代码放入 window.onload() 函数中...
- simplesharebuttons.com 可能正在使用 sharethis API,这就是为什么您的 Chrome 控制台出现 "stLight is not defined" 错误。
- 有时这样的 share/tracking 代码与其他 JS 代码不兼容,并且 chrome 启用隐身模式的扩展...尝试禁用所有这些扩展,或在 [=29] 中重新启动您的网站=]隐身模式,或使用全新的浏览器(如便携式浏览器)
- 并且根据您编码 window.open 的事实,浏览器可以阻止弹出窗口(浏览器中的当前规则是 "if the popup isn't opened by a direct user action, then it's blocked")
您的脚本(在网站上)被评论搞得一团糟。使用这个:
$(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 + "&Body=" + pageurl;
socialWindow(url);
});
}
});
解决方案
删除脚本中的评论...评论使剩余脚本成为评论的一部分。
问题
我设法创建了一个 jQuery 脚本来与一些社交媒体分享个人页面。这样做的原因是为了获得更少的 cookie,因为一些共享按钮提供商使用 cookie,而这些 cookie 可能与新的 GDPR 冲突。
下面的代码在 jsfiddle 中很有用(电子邮件部分除外),但是当我将代码上传到我的网站时,图标显示但不起作用!没有弹出 window 或其他东西。
有人可以快速查看下面的代码,看看我做错了什么吗?
下面的代码也可以在这个有效的 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 + "&Body=" + pageUrl;
socialWindow(url);
});
}
});
</script>
分享按钮 "borrowed" 来自 simplesharebuttons.com
您的问题可能有多种原因:
- 您在 jquery 加载后没有启动主函数...在您的示例代码中,您没有 $( document ).ready(function() { setShareLinks() }) 。 ..是的,JSFiddle 可以工作,但是 jsfiddle 会自动将您的 JS 代码放入 window.onload() 函数中...
- simplesharebuttons.com 可能正在使用 sharethis API,这就是为什么您的 Chrome 控制台出现 "stLight is not defined" 错误。
- 有时这样的 share/tracking 代码与其他 JS 代码不兼容,并且 chrome 启用隐身模式的扩展...尝试禁用所有这些扩展,或在 [=29] 中重新启动您的网站=]隐身模式,或使用全新的浏览器(如便携式浏览器)
- 并且根据您编码 window.open 的事实,浏览器可以阻止弹出窗口(浏览器中的当前规则是 "if the popup isn't opened by a direct user action, then it's blocked")
您的脚本(在网站上)被评论搞得一团糟。使用这个:
$(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 + "&Body=" + pageurl;
socialWindow(url);
});
}
});