我有一个显示帖子缩略图的页面。帖子通过AJAX获取,过滤器允许获取不同的帖子。单击缩略图时,将在点击的帖子中心打开轮播。轮播中的每个帖子都有一个LinkedIn分享按钮。
如果加载到不可见元素中然后再加载,则链接共享按钮无法正常工作。因此我们必须在打开旋转木马时加载它们。我使用以下代码执行此操作:
$.getScript('http://platform.linkedin.com/in.js', function() {
$('.li-box-1').append('<script type="IN/Share" data-counter="right"></script>');
});
现在,如果我关闭旋转木马并选择一个过滤器,从而获取一组不同的帖子,然后点击其中一个,旋转木马显示没有LinkedIn分享按钮,我们在控制台中收到此警告:< / p>
duplicate in.js loaded, any parameters will be ignored
这是因为我们已经加载了LinkedIn的in.js.有谁知道怎么解决这个问题?
答案 0 :(得分:4)
这是调用.js
库中所需链接的代码。
我们通过检查变量IN
是否为undefined
来检查先前是否已加载库。并且基于我们第一次加载库,或者忽略它
这段代码会放在<header>
标记的某个位置,<body>
标记后面或</body>
之前,不知道你的情况。
<script>
if (typeof (IN) !== 'undefined') {
// IN.parse(); // old but still supports
IN.init(); // reinitiating linkedin button
} else {
$.getScript("http://platform.linkedin.com/in.js");
}
</script>
或者您可以这样做:
<script>
delete IN;
$.getScript("http://platform.linkedin.com/in.js")
</script>
现在您将使用您的特定轮播或轮播项目放置此代码。
<script type="IN/Share"
data-url=" **code to generate your url** "
data-counter="right">
</script>
答案 1 :(得分:0)
如果你看一下你正在运行的脚本,你会发现.getScript的结果没有被加载到脚本标签或类似的东西中,而是你&#39 ;基本上执行两个单独的操作:加载脚本,然后使用type="IN/Share"
创建标记。加载脚本的初始操作只需要运行一次,因为您已经发现,所以您只需要运行.append
行来创建所需的动态按钮,然后调用{{1}将脚本链接到新创建的元素。
答案 2 :(得分:0)
似乎您正在做一些非常出色的编码体操,只是为了能够在LinkedIn上共享链接。为什么不尝试更简单的东西?
https://www.linkedin.com/sharing/share-offsite/?url={url}
然后,您可以超链接任何所需的内容,使用所需的CSS和JS等进行控制。
来源: Microsoft LinkedIn Share URL Documentation 。
例如,这对我有用:
https://www.linkedin.com/sharing/share-offsite/?url=http://www.wikipedia.org/
工作正常: