【问题标题】:making reddit's buttons asynchronous使 reddit 的按钮异步
【发布时间】:2012-02-27 05:44:02
【问题描述】:

我正在尝试将 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 元素&lt;div class="reddit-button"&gt;&lt;/div&gt;。关于如何解决这个问题的任何想法?

【问题讨论】:

    标签: javascript reddit


    【解决方案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 下测试正常,所以猜测应该足够了。

    【讨论】:

      猜你喜欢
      • 2022-06-27
      • 2015-06-21
      • 2013-02-21
      • 1970-01-01
      • 1970-01-01
      • 2017-02-13
      • 2016-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多