2009-07-17 6 views
1

ExtJS 버전 2를 사용하고 있습니다. 버튼을 클릭하여 TabPanel에 새 탭을 추가하려고합니다. 새 탭 기능은 다음과 같습니다.새 탭에서 ExtJS 표시 링크

function addTab(tabTitle, targetUrl){ 
     tabPanel.add({ 
     title: tabTitle, 
     iconCls: 'tabs', 
     closable:true 
    }).show(); 
} 

targetUrl을 가져 와서 새 탭에 표시 할 수 있는지 알고 싶습니다. html: targetUrl으로 설정하면 내 탭 콘텐츠는 분명히 내 URL이있는 텍스트 일뿐입니다. autoLoad: {url: targetUrl}을 설정하면 텍스트 또는 스크립트처럼 파일 내용을 읽습니다. 문제는 이미지를 열어야하고 이미지의 실제 표시가 아닌 autoLoad으로 소스를 가져 오는 것입니다. . 새 탭이 기본 링크가있는 새 팝업 창처럼 작동하도록하고 싶습니다.

아무도 도와 줄 수 있습니까?

감사합니다.

답변

0

Nevermind는 ManagedIframe 스크립트 마녀를 사용하여 정확히 내가 원하는 것을 수행합니다. 어쨌든 고마워.

+0

그 스크립트는 기본적으로 내가 권장 한 것을 수행합니다. 나는 그것이 당신이 찾고있는 것인지 아닌지 확실하지 않았습니다. – Josh

0

URL이 전체 페이지가 아닌 HTML 스 니핏 인 경우 내용을 가져 와서 탭을 업데이트하려면 AJAX 호출을해야합니다. 페이지가 <html><body> 태그를 포함하여 전체 페이지 인 경우에, 당신은 탭이 당신이 URL의 내용으로 어떤 패널을로드 할 수는 ExtJS에서 "src=\""+url+"\""

+0

iframe을 생각했지만 센터 패널의 크기에 따라 너비와 높이를 어떻게 설정할 수 있습니까? –

+0

width = "100 %"height = "100 %"시도 - 작동하지 않는 경우 iFrame의 크기를 조절하는 패널에 onresize 핸들러를 추가하십시오. – Josh

2

와 iframe이를 포함해야한다. 이처럼 할 수 있습니다.

var panel = new Ext.Panel({ 
    title: 'Your Tile', 
    closable: true, 
    iconCls: 'tabs', 
    autoLoad: { 
     url: targetUrl 
    } 
}); 
tabPanel.add(panel); 
tabPanel.doLayout(); 
tabPanel.setActiveTab(panel); 

Extjs API 설명서에서 자세한 내용을 확인할 수 있습니다.

+0

게시 한 코드를 실행하고 경로가 targetUrl 인 이미지를 표시 할 수 있는지 말해주십시오. 왜냐하면 나는 할 수 없다. GET 또는 POST를 통해 이미지를 보낼 수 없으므로 " I + Lj % xjE9"와 같은 문자가 표시됩니다. –

+1

오른쪽. URL은 이미지 태그를 반환해야합니다. 이미지를 반환하는 경우 내용을 "" – Josh

0

왜 응답을 통해 이미지를 보내려고하는지 간단히 이미지의 URL을 패널의 html로 지정할 수 있습니다.

var panel = new Ext.Panel({ 
    title: 'Your Tile', 
    closable: true, 
    iconCls: 'tabs', 
    url:'<img src="http://yourdomain.com/images/image.gif" />' 
}); 
+0

으로 업데이트하는 onLoad 핸들러가 있어야합니다. 전송해야하는 이미지 일뿐만 아니라 이미지도 필요합니다. 나는 PDF 파일, HTML 파일, 모든 종류의 것을 보내야한다. –

관련 문제