문제

를 개발하고 웹 페이지의 코드를 가져오는 동적으로 서버에서 콘텐츠를 이 컨텐츠를 컨테이너 노드 같은 것을 사용하는

container.innerHTML = content;

로 덮어쓰기 이전의 어떤 내용에서는 이 노드입니다.이 때까지,그것이 일어나는 이전의 콘텐츠에 점령상 수직 공간 다음 새로운 중 하나를 차지하고 사용자가 스크롤 다음 페이지--스크롤보다는 더 새로운 콘텐츠를 허용,제공합니다.

이 경우에 페이지를 다시 그리기를 잘못--몇몇은 유물의 오래된 콘텐츠가 남아있다.그것이 잘 작동하고,그것도 가능하여 제거의 유물에 의해 최소화 및 복원하는 브라우저로(또는 강제 창을 그려야에서 다른 방식),그러나 이지 않는 것이 매우 편리합니다.

나는 테스트이에서만 사파리(이 아이폰에 최적화된 웹 사이트).

누군가가 아이디어에 처리하는 방법으로 이?

도움이 되었습니까?

해결책

가장 쉬운 솔루션을 내가 찾는 것이 장소는 앵커 태그 <a> 에서 최고의 div 편집:

<a name="ajax-div"></a>

그 때 당신이 이용자의 구매신청이 있는 경우 이용 div, 이 작업을 수행할 수 있습하는 브라우저에 이동 당신의 앵커 태그:

location.hash = 'ajax-div';

이것을 사용하는 사용자가 있는지 확인하지 않 스크롤 다운 너무 멀리 할 때 당신은 콘텐츠를 업데이트와는 문제입니다.

(에서 테스트의 최신 FF 베타 버전과 최근 사파리)

다른 팁

그것은 소리와 같은 webkit 렌더링 엔진의 사파리하지 않은 처음에 인식하는 콘텐츠 변경,적어도 완전히 제거하기에 충분한 이전 html content.을 최소화한 후 복구 윈도우를 시작하고 다시 그리는 브라우저에서 이벤트의 렌더링 엔진입니다.

나는 생각한 것을 탐구 2 길:첫째로 사용할 수 있습 iframe 신의 현재'콘텐츠'노드?브라우저 기대 Iframe 을 변경하는,그러나 당신이 당신을 보고 그들은 항상 그렇게 좋은 변화하는 컨텐츠의 DIV 또는 다른 요소입니다.

둘째는,아마도 수정하여 위치를 제안으로 이전.당신은 단순히 이동 스크롤 다시 0 으로 제안하는 경우 또는 강요할 수 있도를 복원하는 스크롤 콘텐츠를 변경합니다.빼기의 컨텐츠에서 노드를 현재 위치 스크롤(설정 브라우저의 스크롤 콘텐츠 노드의 0)변경은 노드의 내용을 추가,새로운 노드의 높이를 스크롤하는 위치를 표시합니다.

Palehorse 은 바지(수는 투표에 그의 대답에서 어떤 점)추상화 도서관 같은 jQuery,도장,또는 시제품에 도움이 되는 경우가 많습니다 이러한 문제입니다.는 경우에 특히 당신이 당신의 페이지/사이트로 넘어 이동하는 간단하 DOM 조작을 찾을 수 있는 도구 및 향상된 기능에 의해 제공된 라이브러리를 거대한 도움이됩니다.

그것은 소리처럼 문제가 있으로 브라우저에 자체입니다.지만 이 문제가 발생에서 하나의 브라우저는 무엇입니까?

한 가지 방법을 시도해 보실 수 있습을 사용하여 경량과 같은 라이브러리 jQuery.처리하는 브라우저에 차이는 상당히습니다.을 설정 내부 HTML div ID 컨테이너 당신은 단순히 이것을 쓰:

$('#container').html( content );

에서 작동하는 대부분의 브라우저입니다.내가 알지 못하는 경우 그것은 당신의 문제를 해결 특히거나 하지만 그것은 가치가있을 수 있습니다.

그것을 설정하는 작업 스크롤 위치에 다시 정상(요소입니다.scrollTop=0;요소입니다.scrollLeft=0;마음에 의해)대체하기 전에 콘텐츠가 있습니까?

정 요소의 CSS 높이가'자동차'모든 시간에 당신 업데이트 innerHTML.

내가 하려고 하는 컨테이너입니다.innerHTML=";컨테이너입니다.innerHTML=콘텐츠

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top