Javascript 将twitter小部件添加到extjs面板
我是ExtJs新手。 我在twitter上创建了一个twitter小部件。它只在简单的html页面上运行良好。 正如推特所说,你只需要包括Javascript 将twitter小部件添加到extjs面板,javascript,twitter-bootstrap,extjs,twitter,Javascript,Twitter Bootstrap,Extjs,Twitter,我是ExtJs新手。 我在twitter上创建了一个twitter小部件。它只在简单的html页面上运行良好。 正如推特所说,你只需要包括 <a class="twitter-timeline" href="https://twitter.com/search?q=%23certain" data-widget-id="widget-id">Tweets about "#certain"</a> <script>!function(d,s,id){var js
<a class="twitter-timeline" href="https://twitter.com/search?q=%23certain" data-widget-id="widget-id">Tweets about "#certain"</a>
<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,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);}(文档,“脚本”,“twitter wjs”);
将其放入html会在UI上创建一个漂亮的小部件,但我希望它包含在extjs面板中。它只创建一个超链接,而不是小部件。有人能帮我吗。在传递给Ext.Panel构造函数的config对象中,只需为
html
属性包含一行即可。属性的值只是定义Twitter小部件的HTML字符串。将javascript部分移动到面板的afterrender
侦听器中:
Ext.widget('panel', {
renderTo: Ext.getBody()
,title: "Tweeter!"
,width: 500
,height: 300
,html: '<a class="twitter-timeline" href="https://twitter.com/search?q=%23certain" data-widget-id="widget-id">Tweets about "#certain"</a>'
,listeners: {
afterrender: function() {
!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");
}
}
});
Ext.widget('panel'){
renderTo:Ext.getBody()
,标题:“推特!”
,宽:500
,身高:300
,html:'
,听众:{
afterrender:function(){
!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”);
}
}
});
如果有人在寻找答案,下面是我是如何找到答案的
var tweetHtml = '<a class="twitter-timeline" href="https://twitter.com/search" data-widget-id="your-widget-id" height="' + height + '" >Tweets for Certain Mobile</a>';
var dialog = new Ext.Panel({
xtype: 'panel',
height: '100%',
border: false,
scroll: 'vertical',
listeners: {
single: true, // Remove the listener after first invocation
afterrender: function() {
! 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");
}
},
html: tweetHtml
});
var tweetHtml='';
var对话框=新的外部面板({
xtype:'面板',
高度:“100%”,
边界:错,
滚动:‘垂直’,
听众:{
single:true,//在第一次调用后删除侦听器
afterrender:function(){
!函数(d、s、id){
var js,fjs=d.getElementsByTagName[0],
p=/^http:/.test(d.location)?'http':'https';
如果(!d.getElementById(id)){
js=d.createElement;
js.id=id;
js.src=p+“://platform.twitter.com/widgets.js”;
fjs.parentNode.insertBefore(js,fjs);
}
}(文件,“脚本”、“推特wjs”);
}
},
html:tweetHtml
});
我试图将其包含在html中,当我将代码粘贴到普通html页面时,“iframe”标记etcIt对我不起作用。你需要更新data-widget-id。可以从twitter>设置创建一个简单的小部件。我正在使用sencha,它正在抛出对象#没有方法“widget”更新sencha版本很单调sencha?森查是一家。。。我想你是说ext3.4?还是森茶触摸?无论如何,我的示例中唯一相关的部分是html
属性和侦听器。。。这应该是直接移植到任何Sencha产品。。。