对于所有这些按钮,有一个主要的 js 文件来完成繁重的工作。因此,对于 LinkedIn,添加脚本标签:
<script src="//platform.linkedin.com/in.js" type="text/javascript"></script>
一次在页面中。并在需要时使用以下脚本作为linkedin 按钮的占位符。(不要忘记替换data-url
下面脚本中的属性)
<script type="IN/Share" data-url="http://developer.linkedin.com/plugins/share-plugin-generator" data-counter="top"></script>
类似地,对于 Twitter,下面的脚本标签需要在页面中添加一次,因为它的工作是获取主 js 文件并将其添加到页面中。
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
下面的脚本需要在任何你想要的地方多次添加。将 data-url 属性替换为您单击它时需要发送推文的 url。
<a href="https://twitter.com/share" class="twitter-share-button" data-url="https://dev.twitter.com" data-via="your_screen_name" data-lang="en">Tweet</a>
当您获得FB或Google Plus之类的代码时,您将获得一个需要添加一次的脚本,然后将代码添加到您需要的任何地方。
编辑:
根据您在下面的评论:脚本肯定会引起问题,因为它们需要将每个占位符转换为一个好看的“喜欢”按钮。以下是一些提高性能的方法:
- 仅在页面加载时运行这些脚本(即,在加载时添加主脚本)
- 使用
setTimeout
or setInterval
,一次处理每 100 个占位符(需要更改主脚本)
- Lazy load the init of like buttons. When the user scrolls the page and the like buttons will show up in the page, then initialize the buttons (requires change in main scripts)
- Recommended Approach: Keep just one set of like buttons. When user hovers over a search result, then add this set of buttons to that div and change the attributes related to url in the buttons. With this way, only one set of buttons will be shown and won't take time at all to init them.