2011-08-11 6 views
3

포스트 백이 발생하면 아래의 팝업 메시지를 표시하지 않겠습니다. 내 페이지는 가격 책정과 관련이 없으며 게시판에 업데이트 된 ms 차트가 표시됩니다. 어떻게 코드 또는 자바 스크립트에서 해제하려면?표시 안 함 : 웹 페이지를 다시 표시하려면 인터넷 익스플로러가 이전에 제출 한 정보를 다시 보내야합니다.

웹 페이지를 다시 표시하려면 인터넷 익스플로러가 이전에 제출 한 정보를 다시 보내야합니다.

이것은 내가 시도한 javascript입니다. 작동하지 않습니다.

<script type="text/javascript"> 
// <!-- 
function submitForm() { 
    window.opener.document.forms[0].submit(); 
    } 
// --> 
</script> 

정도로 것과 같은 형태로 기능 부착이 페이지를 의미

<body> 
<form id="form1" runat="server" onsubmit="submitForm()"> 

답변

6

난 당신이 자바 스크립트에서이 일을하고 셨을 텐데요 :

FB.Event.subscribe('auth.login', function(response) { 
    window.location.reload(); 
}); 
FB.Event.subscribe('auth.logout', function(response) { 
    window.location.reload(); 
}); 

위의 코드는 페이스 북의 문서에서 제공하는 동안, 그것은 페이스 북 자바 스크립트 SDK, 는 의지를 구현하는 독립형 웹 사이트에 대한 작동 무한 루프가 발생하여 Internet Explorer 및 Firefox에서 Facebook 응용 프로그램을 깨뜨릴 수 있습니다.

Facebook이 앱을로드하면 POST를 통해 사용자의 인증 상태에 대한 정보를 보냅니다. SDK는이 데이터를 처리하고 사용자를 인증합니다.

인증 성공시 JavaScript SDK에 페이지를 다시로드하도록 지시하면 Firefox와 Internet Explorer에서이를 해석하여 POST 데이터를 다시 보내야 함을 의미합니다. 앱이 POST 데이터를 다시 수신하고 사용자를 다시 인증 한 다음 페이지를 다시로드하여 무한 루프가 발생합니다.

해결책 : window.location.reload()을 사용하지 마십시오. 대신 window.location.href을 설정해야합니다 (그렇지 않으면 브라우저 요청에서 POST 데이터를 제거해야합니다).

+0

+1 내 머리카락을 찢어 버리지 말아라. : P ** 많은 친구들에게 고마워 ** ** -이 문제가 해결되었습니다! – Lix

+0

저는 js를 처음 접했고이 문제를 다루고 있습니다. 나는 네가 여기서 쓴 것을 좋아하지만 어떻게 구현해야할지 모르겠다. window.location.reload를 사용하는 대신 "windows.location.href"를 설정합니까? 그것을 무엇으로 설정하고 /하거나 무엇을 할 것인가? – Jeremy

+0

나는 그것을 이해했다 ... 이해가 안되는 나와 같은 사람들은 ... window.location.href = window.location.href; 나를 위해 일했다. – Jeremy

0

POST 요청을 수행 한 후 수득 하였다. 이를 막는 가장 좋은 방법은 서버 코드에서 POST 요청을 처리 한 후 동일한 페이지로 리디렉션하는 것입니다.

+0

그래서 내가 page_load의 코드에서 그렇게합니까? – TroyS

+0

나는 당신이 무엇을 요구하고 있는지 확신하지 못합니다. ASP.NET 코드에서 페이지 처리가 끝나고 차트를 표시 한 후 무엇을하지 않으면 동일한 페이지로 리디렉션합니다. ASP.NET에서 나는 당신이 Response.Redirect ("#")' –

+0

을 할 수 있다고 생각합니다 Page_Load에 다음 코드를 추가했으나 원래 페이지를 다시로드하는 웹 페이지의 변경 사항을 유지하지 않습니다 If If IsPostBack Then Else Response .Redirect (Request.Url.AbsoluteUri) End If ' – TroyS

1

저는 Javascript에 익숙하지 않은 분들을 위해 아론이 말한 것에 대해 약간 설명 할 것입니다. 적어도 이것은 그의 글을 읽은 후에 내가 팠던 것이다.

window.location.href = window.location.href; 

이것은 document.location.reload();을 대체하며 광고하는대로 작동합니다.

window.location.href 문자열을 수정해야하는 번거 로움이있었습니다. 내 페이지가 어떤 페이지에서 왔는지에 따라 페이지가 다르게 동작했기 때문입니다. 그래서 여기에 후세에 대한 나의 완전한 방법이있다.

function RefreshParentPage() 
    { 
     //document.location.reload(); 
     var redirectURL = window.location.href; 

     if (window.location.href.indexOf("showpage=summary") > -1) { 
      redirectURL = document.location.href.replace("showpage=summary", "showpage=events") 
     } 

     window.location.href = redirectURL; 
    } 
관련 문제