使reddit的按钮异步

时间:2012-02-05 10:17:59

标签: javascript reddit

我正在尝试将Reddit按钮添加到我的网站,但它们不是异步的,Reddit往往会滞后,从而减慢页面加载速度。当我看到脚本返回的内容时,我会得到类似的结果:

(function () {
    var write_string = ...
    document.write(write_string);
})()

我尝试在页面加载后将其注入我的页面。我在页面加载后在javascript中尝试了这两种方法都无济于事:

placeholder.innerHTML = '<script type="text/javascript" src="http://www.reddit.com/buttonlite.js?i=5"></script>'

var js = document.createElement('script');
js.type = 'text/javascript';
js.src = 'http://www.reddit.com/buttonlite.js?i=5';
placeholder.appendChild(js);

其中placeholder是DOM元素<div class="reddit-button"></div>。关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:1)

您可以“覆盖”document.write方法:

window.onload = function() {
    var oScript = document.createElement("script");
    document.write = function(text) {
        document.getElementById("placeholder").innerHTML += text;
    };
    oScript.src = "http://www.reddit.com/buttonlite.js?i=0";
    document.body.appendChild(oScript);
};

这样,外部代码可以根据需要调用document.write,并将HTML推送到文档中的适当位置。

Live test case - 在Chrome,Firefox和IE9下测试好了所以猜测它应该足够了。