2013-08-19 8 views
6

私はExt.panel.Panelでした。外部Webページのコンテンツをパネルに読み込みます。ExtJS 4.1外部Webページからコンテンツをロード

私がここで説明するようにローダーを使用しようとしました: loader question

、あなたがこのjsfiddleに例を見つけたことができます。 http://jsfiddle.net/eternasparta/sH3fK/

Ext.require([  
'Ext.form.*', 
'Ext.tip.*' 
]); 


Ext.onReady(function() {  


Ext.QuickTips.init(); 

Ext.create('Ext.panel.Panel',{ 
renderTo: Ext.getBody(), 
height:400, 
    width:400, 
    id:'specific_panel_id' 
}); 

dynamicPanel = new Ext.Component({ 
     loader: { 
      /*load contents from this url*/ 
      url: 'http://it.wikipedia.org/wiki/Robot', 
      renderer: 'html', 
      autoLoad: true, 
      scripts: true 
      } 
     }); 

Ext.getCmp('specific_panel_id').add(dynamicPanel); 

}); 

は、おそらく私が使用方法を理解していませんローダー(可能であれば)外部のWebページを使用します。 私の最初の質問は:http://it.wikipedia.org/wiki/Robotのページをローダーを使ってパネルに読み込むことは可能ですか?

2番目の質問:答えが「いいえ」の場合、そのページの内容を読み込む方法をどのように示唆していますか?

はすべて

+1

iFrameはどうですか? –

答えて

10

外部コンテンツの場合は、iframeを使用する必要があります。しかし、あなたはIFRAMEの寸法は、コンテナパネルで管理することを望むならば、あなたはそれだけではなく、htmlプロパティを使用してのコンポーネントにする必要があります:

Ext.define('MyIframePanel', { 
    extend: 'Ext.panel.Panel', 
    layout: 'fit', 
    items: [{ 
     xtype: 'box', 
     autoEl: { 
      tag: 'iframe', 
      src: 'http://it.wikipedia.org/wiki/Robot', 
     }, 
    }] 
}); 

は内窓と動的ページの読み込みでも例を見てください私の最近のブログ記事:http://nohuhu.org/development/using-render-selectors-to-capture-element-references/

+0

私はあなたの提案するソリューションに独自に達しました。皆さん、ありがとうございました – Marco

3

それはセキュリティ上の理由(アクセス制御 - 許可 - 起源)であるありがとう。

あなたは同じようにあなたのパネルの「HTML」プロパティを設定することができ

html: '<iframe src="http://it.wikipedia.org/wiki/Robot"></iframe>', 

参照してください:http://jsfiddle.net/sH3fK/2/

を使用すると、同じドメインからページをロードした場合、あなただけの「ローダー」プロパティを設定することができますあなたのパネル:

​​
+0

しかし、私は、たとえそのHTMLファイルが自分のドメインに存在していても、そのHTMLページ内に書かれたスクリプトをロードしないと思う。 – Asqan

関連する問題