2012-03-01 6 views
1

내 팝업에서 window.createPopup();으로 열리는 링크를 지정해야합니다.팝업 창에서 하이퍼 링크를 작동 시키려면 어떻게합니까?

하지만 링크를 클릭해도 아무런 변화가 없습니다. 브라우저가 href 속성을 무시하는 것으로 보입니다.

<a href="test.html">test</a> 

이 링크를 클릭하면 리디렉션하지 않습니다에 "인 test.html"는 - 그것은 href="#"을 것처럼 아무 반응이 없습니다.

"IE에만 있기 때문에이 방법을 사용하지 마십시오."라고 말하십시오.

나는 대상을 지정해야한다는 것을 읽었습니다.

어떻게 링크를 작동시킬 수 있습니까?

답변

1

IE의 팝업 개체는 별도의 문서가있는 포커스가 없으며 탐색 할 수없는 별도의 창입니다. 내 생각 엔 당신이 어쨌든 팝업 창을 탐색하고 싶지 않다는 것입니다, 당신은 아마 팝업의 오프너를 탐색하고 싶습니다. 당신이 사용할 수있는 하나의 트릭은 당신이 팝업 개체를 만들 때 부모 창에 대한 참조를 설정하는 것입니다 다음 소유자를 만들기 위해

var myPopup = window.createPopup(); 

// Make a connection between the popup and the current window 
myPopup.document.parentWindow.owner = window; 

그런 다음, HTML이나 자바 스크립트 코드에서 링크에 이벤트 처리기를 추가를 창은 지정된 href로 이동합니다

<a href="test.html" onclick="owner.location = this.href;">test</a> 

을 다른 방법으로, DOM을 통해 링크를 만드는 경우, 단지 작성시 추가 :

var myPopup = window.createPopup(), 
    link = myPopup.document.createElement("a"); 

link.href = "test.html"; 
link.onclick = function() { 
    // window refers to the main window, not the popup window 
    window.location = this.href; 
} 

myPopup.document.body.appendChild(link); 
+0

작동합니다. 관리 할 수 ​​있습니까?이 작업도 가능합니다. 마우스 오른쪽 버튼을 클릭하여 링크를 새 창에서 열려고하면 어떻게됩니까? –

+1

@KeithL : 고칠 수 있다고 생각하지 않습니다. 아마도'event.ctrlKey' 검사를 추가하고'window.location()'대신'window.open'을 사용할 수 있습니다. 내가 너라면, 전체 팝업 창에 대한 상황에 맞는 메뉴를 비활성화 할 것입니다 (거의 쓸모가 없습니다). –

관련 문제