如何动态更改链接的共享按钮的布局?

时间:2015-01-15 02:13:36

标签: javascript linkedin social-media linkedin-jsapi share-button

可以使用以下代码将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");

问题虽然是you can see in this jsfiddle,但是很快就出现了一些JS错误:

  

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

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

这是Linkedin的jsApi的问题吗?

1 个答案:

答案 0 :(得分:3)

好像你没有传递其内容应该在IN.parse(domNode)方法中解析的节点

  

解析标签

     

随着框架加载,它将自动扫描文档和   呈现任何特定于LinkedIn的标签。偶尔,你可以动态地   更改DOM的内容和新的LinkedIn标签需要   解析。如果平台已加载,您可以重新解析新的   带有以下JavaScript的IN标记:

     

IN.parse(domNode)

     

其中domNode是其内容应为的节点   解析(例如使用document.body触发整个解析   页)。

尝试了一些new things with your example,我认为此+init是导致错误的原因(与this example)不同

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

这是否发生在您的申请表上?