我们有一条线吧!我们页面上的共享按钮,它会阻止加载我们自己的资源,这会导致很大的性能问题。
随着line.me 提出的 Line Share 按钮的实现,他们的 line-button.js 脚本需要包含在页面中间,该按钮应该显示在哪里。该按钮替换了<script>
它启动的元素:
<script type="text/javascript">
new media_line_me.LineButton({"pc":false,"lang":"en","type":"b"});
</script>
在我们自己的完成后,我可以将 line-button.js 脚本添加到页面中:
function includeLine(callback) {
var script = document.createElement('script');
script.async = true;
script.onload = callback;
script.src = "//media.line.me/js/line-button.js?v=20140411";
document.body.appendChild(script);
}
然后我可以像这样注入脚本元素:
function initLine() {
var
script = document.createElement('script'),
line = ['new media_line_me.LineButton({"pc":false,"lang":"'];
line.push(util.getLang());
line.push('","type":"b"});');
script.text = line.join('');
publ.$elements.shareLine.append(script);
};
但是在 line-button.jsmedia_line_me.LineButton
中为事件附加了一个监听器,window.onload
此时这已经发生了。
我真的想确保在任何社交媒体小部件开始加载之前完成所有其他工作。但现在我有点没有想法。
是否有另一种解决方案不是将 JS 文件作为文本加载,然后在我们的脚本中重写eval()
它?