3

可以使用以下代码将 LinkedIn 共享按钮添加到页面:

<script src="//platform.linkedin.com/in.js" type="text/javascript"></script>
<script type="IN/Share" data-counter="top"></script>

我希望能够动态地将数据计数器更改为按钮顶部。

为此,我删除了旧的LinkedIn button并使用以下代码添加了一个新的:

addScript = function(counterPosition) {
    mainElement = document.getElementById("scripts-go-here");
    d = document.createElement("script");
    d.type="IN/Share";
    d.setAttribute("type", "IN/Share");
    d.setAttribute("data-counter", counterPosition);

    // Reset the current element, since we only want to change the layout of the button
    while(mainElement.firstChild) {
        mainElement.removeChild(mainElement.firstChild);
    }
    mainElement.appendChild(d);
    IN.parse();
}

addScript("right");
addScript("top");

但是,正如您在此 jsfiddle 中看到的那样,问题是不久之后出现了一些 JS 错误:

“未捕获的 TypeError:无法将属性 'innerHTML' 设置为 null”

为什么会发生这种情况,我该如何解决?

这是 Linkedin 的 jsApi 的问题吗?

4

1 回答 1

3

似乎您没有传递应在IN.parse(domNode)方法中解析其内容的节点

解析标签

当框架加载时,它会自动扫描文档并呈现任何 LinkedIn 特定的标签。有时,您可能会动态更改 DOM 的内容,并且需要解析新的 LinkedIn 标签。如果平台已经加载,您可以使用以下 JavaScript 重新解析新的 IN 标签:

IN.parse(domNode)

其中 domNode 是应该解析其内容的节点(例如,使用 document.body 来触发对整个页面的重新解析)。

用你的例子尝试了一些新的东西,我认为这+init是你的错误的原因(它与这个例子不同)

<script type="IN/Share+init" data-counter="top"></script>

这是否发生在您的应用程序上?

于 2015-01-30T01:14:21.317 回答