2009-02-04 3 views
1

나는 friefox 사이드 바 확장 기능을 가지고 있습니다. 툴바 아이콘을 클릭하여 열면 웹 페이지 (필자가 작성한 것)를로드합니다. 이제 사용자가 웹 페이지 (사이드 바에로드 된 링크)에서 링크를 클릭하면 링크 된 웹 페이지가 메인 윈도우의 새 탭에서 열리겠습니다. 내 웹 페이지의 마크 업에두고 시도 :Firefox 사이드 바 확장 링크가 새 브라우저 탭에로드되었습니다. 어떻게?

<a target="_content" href="http://www.google.com">Google</a> 

그러나 링크가 아닌 새 탭에서 포커스가있는 탭에 열립니다.

도와주세요.

감사합니다.

답변

1

사실, 브라우저의 새 탭에 웹 페이지 (사이드 바 확장에로드 된 다른 웹 페이지의 링크가 있음)를로드 할 수있는 방법이 없습니다. 유일한 방법은 자바 스크립트를 사용하는 것입니다. 즉, 특권 상태 (확장의 일부로서 의미)에 따라 다음과 같이 실행한다 :

gBrowser.addTab("http://www.google.com/"); 

EDIT :

이 경우에는 작동하지 않는 브라우저 탭을 추가하는 상기 방법. this article에 따르면 사이드 바에서 실행중인 코드는 주 창에 액세스 할 수 없습니다. 처음에는 gBrowser를 사용하기 전에 브라우저 창에 액세스했습니다. 여기 내가 사용하고 웹 사이트에서 가져온 코드가 제대로 작동합니다 :

var mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor) 
.getInterface(Components.interfaces.nsIWebNavigation) 
.QueryInterface(Components.interfaces.nsIDocShellTreeItem) 
.rootTreeItem 
.QueryInterface(Components.interfaces.nsIInterfaceRequestor) 
.getInterface(Components.interfaces.nsIDOMWindow); 

내가 좋아 아래 getBrowser 기능을 통해 gBrowser 액세스 브라우저 창에 액세스 할 수있어 후 :

mainWindow.getBrowser().addTab("http://www.google.com/"); 

(가) 열립니다 메인 윈도우 브라우저의 새로운 탭.

0
<a href="http://www.google.com" target="new">Google</a> 

이 값은 사용중인 브라우저에 따라 다릅니다. 파이어 폭스와 오페라, 그리고 나는 최신 IE를 확신한다. 사용자 선호에 의해 달리 지정되지 않는 한, "새 창"을 새로운 탭으로 표시한다.

2

대신 target = "_ blank"를 사용하면 FF (버전 3)에서 새 탭을 열어야합니다. 사이드 바에서 시도하지는 않았지만 촬영할 가치가 있습니다.

+1

_blank 및 new/_new는 상호 교환 가능한 앵커 속성입니다. :) –

+0

감사 SD, 나는 몰랐다 :) – tehvan