2014-05-15 2 views
1

페이지의 <head>window.location.href 리디렉션이 있습니다. 특정 조건이 충족되고 사용자가 동일한 머리글 및 바닥 글 템플릿을 사용하는 유사한 페이지로 리디렉션 될 때 발생합니다 (동일한 JS 코드가 다시 존재합니다 - 이는 가능한 해결책에 중요 할 수 있습니다).JS 리디렉션이 시작되기 전에 페이지에 코드 덤프가 발생했습니다

때때로, 두 번째로, 리디렉션이 시작되기 직전에 브라우저 창에 코드가 덤프되는 것을 볼 수 있습니다. 이것은 나를 위해 대략 1/20 시간 안에 일어난다. 제가 물어 본 다른 사람들에게는 더 자주 발생합니다.

페이지의 JS 나머지 부분이 완전히 파싱되기 전에 나옵니다. 그렇지 않으면 ...? 브라우저가 리디렉션 라인 이후 페이지의 나머지 부분을 계속 파싱하는 데 몇 백 밀리 초가 걸릴 것으로 예상합니다. 이 코드가 페이지에 표시되지 않게하려면 어떻게해야합니까?

+0

문제가 있습니까? –

+0

아직 해결되지 않음 (코드의 현재 상태). 귀하의 제안이 효과가 있을지 모르지만, 시신을 사용할 수있을 때까지 기다리지 않으려 고합니다. 리다이렉트는 가능한 한 빨리 일어나야한다. :) –

+0

아, 그러면 나에게이 일을 짐작할 수 없다. :) 대신 'showBody' 변수를'true '로 설정하고 두 번째 스크립트 태그를 본문에 넣을 수 있습니다. 'if (showBody) document.body.style.display = "block";' –

답변

1

클라이언트 측의 리디렉션을 유지 주장하는 경우 - 당신은 display:none에 몸을 설정 한 다음, 자바 스크립트에서 조건부의 else 지점에서 - 그것을 보여

CSS를

body{ 
    display:none; 
} 

JS :

이 JS를 설정하지 않는 사람들에 빈 페이지를 보여주는 단점이있다, 그래서 당신이 할 수 있다는
if(someCondition){ 
    location.hred = "http://othersite"; 
} else { 
    document.body.style.display = "block"; 
} 

<body>보다 덜 '과감한'꼬리표입니다.

관련 문제