Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Twitter将时间线嵌入聚合物元素中_Javascript_Twitter_Polymer - Fatal编程技术网

Javascript Twitter将时间线嵌入聚合物元素中

Javascript Twitter将时间线嵌入聚合物元素中,javascript,twitter,polymer,Javascript,Twitter,Polymer,我正试图在一个聚合元素中实现嵌入twitter的时间线。但是有一个问题:twitter的widgets.js脚本无法获取锚元素,锚元素位于影子dom中。为了解决这个问题,我覆盖了document元素的一些方法,在widgets.js完成执行后,我恢复了document的标准方法。它可以工作,但看起来很不安全。有人能有更好的解决方案吗?在尝试了与您类似的技巧后,我发现答案很简单 查看twitterdocs(),我发现您可以告诉它在任何给定的点上查找动态创建的小部件,从给定的节点向下遍历 这意味着您

我正试图在一个聚合元素中实现嵌入twitter的时间线。但是有一个问题:twitter的widgets.js脚本无法获取锚元素,锚元素位于影子dom中。为了解决这个问题,我覆盖了document元素的一些方法,在widgets.js完成执行后,我恢复了document的标准方法。它可以工作,但看起来很不安全。有人能有更好的解决方案吗?

在尝试了与您类似的技巧后,我发现答案很简单

查看twitterdocs(),我发现您可以告诉它在任何给定的点上查找动态创建的小部件,从给定的节点向下遍历

这意味着您只需将其插入聚合物就绪:

...
  <template>

    <a class="twitter-timeline" height="500" href="https://twitter.com/joaomgvieira">Tweets by joaomgvieira</a>

  </template>

  <script>window.twttr = (function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0],
      t = window.twttr || {};
    if (d.getElementById(id)) return t;
    js = d.createElement(s);
    js.id = id;
    js.src = "https://platform.twitter.com/widgets.js";
    fjs.parentNode.insertBefore(js, fjs);

    t._e = [];
    t.ready = function(f) {
      t._e.push(f);
    };

    return t;
  }(document, "script", "twitter-wjs"));</script>

  <script>
    Polymer({

      ready: function () {
        twttr.ready(function () {
          twttr.widgets.load(this);
        }.bind(this));
      }

    });
  </script>
...
。。。
window.twttr=(函数(d,s,id){
var js,fjs=d.getElementsByTagName[0],
t=window.twttr |{};
if(d.getElementById(id))返回t;
js=d.createElement;
js.id=id;
js.src=”https://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js,fjs);
t、 _e=[];
t、 就绪=功能(f){
t、 _e.推动(f);
};
返回t;
}(文件,“脚本”、“推特wjs”);
聚合物({
就绪:函数(){
twttr.ready(功能(){
twttr.widgets.load(这个);
}.约束(这个);
}
});
...
为了使其可重用,我创建了


这应该很容易做到,这样你就可以像以前一样使用嵌入件了。

我试图用Twitter上的widget.js库制作一个聚合物组件:

我正在使用我的另一个库加载库:

您可以很容易地检查两者的源代码

我在我的一些项目中使用了这个元素,它运行得非常好。
我希望可以是有用的,也欢迎PRs

为什么不直接使用ajax获取提要,然后按照您的意愿进行解析和可视化呢?