2013-06-04 2 views
0

URL/팝업 창의 위치를 ​​가져 오는 방법이 있습니까?URL/팝업 창의 위치를 ​​가져올 수 없습니다.

CODE :

<html> 
    <head> 
    <script> 
    function openWin() 
    { 
     myWindow=window.open('http://www.google.com','','width=200,height=100'); 
     console.debug(myWindow.location.href); 
     console.debug(window.location.href); 
    } 
    </script> 
    </head> 

    <body> 
    <input type="button" value="Open window" onclick="openWin()" /> 
    </body> 
</html> 

첫 번째 콘솔 인쇄 about:blank

두 번째 콘솔이 현재 페이지의 URL (위의 코드의 예 URL을 인쇄하지만, 팝업의 URL을 인쇄하지 않습니다 - 위로 창)

첫 번째 콘솔이 (즉, http://www.google.com) 위치를 인쇄하지 않는 이유는 무엇입니까?

누구든지 나를 도와 줄 수 있습니까?

미리 감사드립니다.

답변

0

브라우저 보안을 사용하면 스크립트와 동일한 도메인에 있지 않은 창에서 URL을 가져올 수 없으므로 따라서 코드가 example.com에서 실행되고 있다면 example.com에도 있었던 모든 창의 URL 만 가져올 수 있습니다.

1

@ Hg3에서 말한 것처럼 myWindow의 경우 location.href에 액세스 할 수 없습니다. window.open은 빈 DOMWindow을 반환합니다.

그러나 window.open을 덮어 쓰고 열어 둔 모든 창을 간단한 배열로 유지할 수 있습니다.

//override window.open 
var windows = []; 
window._open = window.open; 
window.open = function(url, name, params){ 
    windows.push(name, url); 
    return window._open(url, name, params) 
} 
//function return href by name 
function hrefByName(name) { 
    var index=(windows.indexOf(name)); 
    return (index>-1) ? windows[index+1] : 'undefined'; 
} 

//modified openWin function 
function openWin(url, name) { 
    var params='width=200,height=100'; 
    window.open(url, name, params); 
    //test, ouput current url and the windows array 
    console.log(hrefByName(name)); 
    console.log(windows); 
} 

테스트 마크 업 : - 무작위 이름을 만들거나 이름과 같은 고유 번호를 통과 물론

<input type="button" value="google" onclick="openWin('http://google.com', 'google')" /> 
<input type="button" value="bing" onclick="openWin('http://bing.com', 'bing')" /> 
<input type="button" value="stackoverflow" onclick="openWin('http://stackoverflow.com', 'stackoverflow')" /> 

, 난 당신이 동적으로 생성 된 URL의와 설정을 가지고 같아요.

+0

정말 고맙습니다. 그러나 나는 창의 URL을 가져 오는 방법을 찾고있다. 예를 들어 게시 한 경우 'google'버튼을 클릭한다고 가정 해 보겠습니다. Google 창이 열립니다. 이제 Google에서 무언가를 검색하면 해당 창에 대한 URL이 변경됩니다. 이제 어떻게 URL을 가져 옵니까? –

+0

@Anish Nair, 당신은 브라우저의 보안 때문에 그렇게 할 수 없습니다. "parent"-window와 같은 근원을 공유하는 경우에만 열려있는 하위 창에서 href를 가져올 수 있습니다. 실제로 원하는 것은 모든 브라우저 창이나 탭에서 스파이 할 수있는 일종의 추적기입니다. 내가 당신이 그것을 달성 할 수있는 방법을 볼 수있는 유일한 방법은 모든 브라우저 프로세스를 enumaretes하고 URL/hrefs를 얻는 로컬에 설치된 데스크탑 응용 프로그램에 의한 것입니다. – davidkonrad

관련 문제