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