2011-05-10 4 views
3

그래, 여기 심각한 문제가 있습니다. 내 컴퓨터에서이 코드는 잘 작동합니다. 그러나 제 동료들에게는 IE와 Firefox에서 문제가 발생합니다. window.opener 부분에, "권한 거부"에 대한모든 브라우저에서 window.opener를 사용하는 경우의 문제

var openlocation = window.opener.location.href;

휴식. 그래서, 오프너 페이지에, 나는 외부의 .js 페이지에 저장된 함수 쓴 :

var getLocation = function() { 
    return window.location.href; 
};

를 다음 호출, 그 var openlocation = window.opener.getLocation();

같은

사람이이 파괴되는 이유는 어떤 생각을 가지고 있습니까?

편집 : 한 페이지가 팝업을 만들고 있는데, 둘 다 동일한 도메인에 있습니다. 팝업 페이지가 다음과 같은 코드가 있습니다


$(document).ready(function() { 
    var openlocation = window.opener.getLocation(); 
    (function setTimer() { 
     setInterval(function() { 
      if (window.opener.location.href != openlocation) { // they've changed screens 
       window.close(); 
      } 
     }, 15000); 
    })(); 
    $("input#notescancel").click(function() { 
     window.close(); 
    }); 
}); 

getLocation() 기능 모두 그냥 모든 컴퓨터하지만, 광산, window.opener.location.href를 사용하지만, 함께 해봤를, 그것은 나누기. 감사합니다. .

+0

도메인이 동일하면이 방법이 효과적입니다. 테스트 케이스를 가리킬 수 있습니까? –

+0

하지 말아야 하나. 테스트 페이지를 게시 할 수있는 공개 사이트가 없지만 OP 코드에 전체 코드를 게시합니다. – tjsimmons

+0

다른 하위 도메인에 있습니까? 또한 브라우저 보안 설정을 확인하십시오. –

답변

1

, 동일 기원 정책이라고합니다. 나는 창문 깊숙이 들어가고 있었다. 후퍼. 위치. IE를 위해, 나는 거기에서 멈추고, 그것을 끈으로 바꾸고, 좋게 부름해야한다. 내가 한 짓 이니, 지금은 효과가 있습니다.

그래서 window.opener.location.href 대신 IE 용 window.opener.location.toString()을 사용했습니다.

+0

+1 솔루션 제공 – Thariama

1

2 개의 창이 다른 도메인에 있기 때문일 수 있습니다. sample.com 및 www.sample.com조차도 브라우저에 따라 다른 것으로 간주됩니다. 기술적으로는 내가 그것을 알아 냈

https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript

+0

여기에 더 많은 정보를 입력해야한다고 생각합니다. 도메인은 동일하며 업데이트 된 OP입니다. – tjsimmons

관련 문제