Javascript Twitter订阅源问题与余烬视图
基本上在主页上,我有Twitter小部件生成的代码片段,当我第一次通过url加载页面时,会显示提要,现在我转到其他页面并再次返回主页,Twitter提要似乎不会显示Javascript Twitter订阅源问题与余烬视图,javascript,ember.js,single-page-application,twitter-feed,Javascript,Ember.js,Single Page Application,Twitter Feed,基本上在主页上,我有Twitter小部件生成的代码片段,当我第一次通过url加载页面时,会显示提要,现在我转到其他页面并再次返回主页,Twitter提要似乎不会显示 我似乎找不到这背后的原因,是不是和温泉有关?因为如果通过加载的URL加载主页,但当我来回导航时,它不会显示,我只会看到a标记按用户Tweets这是我们在Twitter设置中创建小部件时的小部件代码。我对其进行了格式化,使其可读 <script> !function(d,s,id){ var js,fjs=d.
我似乎找不到这背后的原因,是不是和温泉有关?因为如果通过加载的URL加载主页,但当我来回导航时,它不会显示,我只会看到a标记按用户Tweets这是我们在Twitter设置中创建小部件时的小部件代码。我对其进行了格式化,使其可读
<script>
!function(d,s,id){
var js,fjs=d.getElementsByTagName(s[0],p=/^http:/.test(d.location)?'http':'https';
if(!d.getElementById(id)){
js=d.createElement(s);
js.id=id;
js.src=p+"://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js,fjs);
}
}(document,"script","twitter-wjs");
</script>
如你所见,如果!d、 getElementByIdid这会查找元素的存在性,如果它不存在,那么它会插入提要,在我的例子中,这个元素存在,但是当我导航到某个页面时小部件没有呈现&返回,所以我删除了if语句,并且一切都很好,页面上只有一个小部件
这不是最好的解决方案,但将来有人会面临这个问题,这是一个可能的解决办法 这是我们在Twitter设置中创建小部件时的小部件代码。我对其进行了精简,使其可读
<script>
!function(d,s,id){
var js,fjs=d.getElementsByTagName(s[0],p=/^http:/.test(d.location)?'http':'https';
if(!d.getElementById(id)){
js=d.createElement(s);
js.id=id;
js.src=p+"://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js,fjs);
}
}(document,"script","twitter-wjs");
</script>
如你所见,如果!d、 getElementByIdid这会查找元素的存在性,如果它不存在,那么它会插入提要,在我的例子中,这个元素存在,但是当我导航到某个页面时小部件没有呈现&返回,所以我删除了if语句,并且一切都很好,页面上只有一个小部件
这不是最好的解决方案,但将来有人会面临这个问题,这是一个可能的解决办法 你能提供一个JSFIDLE来显示行为吗?JSFIDLE在小部件代码中给出了一些错误,但是我找到了解决方案,共享它。你能提供一个JSFIDLE来显示行为吗?JSFIDLE在小部件代码中给出了一些错误,但是我找到了解决方案,共享了它,我已经想了好几个小时了@MudassirAli,所以它只在组件中工作,而不在模板中工作?好吧,我在emberjs还没有引入组件时写了这个答案。因此,需要注意的重要一点是id为twitter wjs的元素是否存在d.getElementsByTagNames[0],p应该是d.getElementsByTagNames[0],p。但是这个解决方案不适用于路线更改案例的Ember组件。这个答案非常古老,在当时没有Ember组件的情况下编写。太棒了,我已经花了几个小时试图解决这个问题@MudassirAli,所以它只在组件中工作,而不在模板中工作?好吧,我在emberjs还没有引入组件时写了这个答案。因此,需要注意的重要一点是id为twitter wjs的元素是否存在d.getElementsByTagNames[0],p应该是d.getElementsByTagNames[0],p。但这个解决方案在路由更改案例的Ember组件中不起作用。这个答案非常古老,在当时没有Ember组件的情况下编写