2017-04-06 7 views
6

iframe에 position: fixed;의 요소가 올바르게 렌더링되지 않는 문제가 있습니다. Safari의 macOS에서만이 문제를 발견했습니다. 여기iframe 내에서 위치가 고정 된 요소가 Safari에서 렌더링되지 않습니다.

는 보는 방법이다 : 페이지에서

enter image description here

은 상단과 하단을로드 :

여기

enter image description here

는 맥 OS에서 사파리 (페이지로드) 모습입니다 막대는 표시되지 않습니다. 그들은 공간을 차지하는 DOM에 있으며 클릭 할 수 있지만 브라우저에서 "렌더링"하지 않았습니다. 위 이미지에서 볼 수 있듯이 막대는 공백으로 나타납니다.

JS, CSS를 통해 다시 그리거나 브라우저의 크기를 조정하면 막대가 나타납니다. 그러나 우리는 다시 그리기를 강제하는 방법에 대한 해결책을 찾고 있지 않습니다. 우리의 질문은 이것이 왜 처음에 일어나는가하는 것입니다.

은 현재 살아있는 예를 찾을 수 있습니다

https://testing.enuvo.ch/user/collect/#collector#/user/overlay

PS를 : 항상 발생하지 않습니다. 경우에 따라 브라우저의 크기를 조정하고 다시 시도 할 때 올바르게 표시됩니다. 문제를 재현 할 수 있기를 바랍니다.

+0

다시 그리기에 대한 확신이 없지만 noscript 블록은 사용자가 입력 한 텍스트의 태그를 렌더링합니다. – abluejelly

+1

@abluejelly 통지 해 주셔서 감사합니다. 소스 코드를 복사하여이 테스트 서버에 올려 놓았을 때 (사용자가 액세스 할 수 있도록)이 작업이 필요합니다. – Lionel

답변

0

예를 들어 보았는데 정말 이상합니다. 캐시 문제에 대해 생각해 보셨습니까? Safari에는 iframe 캐싱에 대한 고유 한 동작이 있습니다.

이 iframe에서 HTTP 헤더를 변경하여 캐시를 비활성화 할 수 있습니까?

header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1. 
header('Pragma: no-cache'); // HTTP 1.0. 
header('Expires: 0'); // Proxies 
+0

불행히도 일하지 않고 있으며, 여전히 일어나고 있습니다. https://testing.enuvo.ch/user2/collect/#collector#/user2/overlay/ – Lionel

+0

iframe의 링크를 신속하게 변경할 수 있습니까? 현재 링크를 변경할 수 있습니까 : /user2/overlay /?t = 타임 스탬프 또는 php : /user2/overlay /? t =

+0

완료! 아직도 일어나고 : -/ – Lionel

-3

당신이 iframe이 파일이 아닌 당신의 뷰 파일에서 CSS를 작성해야합니다 : 여기

Cache-Control: no-cache, no-store, must-revalidate Pragma: no-cache Expires: 0 

는 PHP의 예입니다.

+0

Pla는 스팸으로 신고 될 수 있으므로 답변에 관련성없는 링크를 추가하지 마십시오. – Shadow

3

position: fixedz-index에는 몇 가지 결함이 있습니다. 오래된 브라우저 중 일부는 조금 다르게 처리하고 다른 방식으로 컨텍스트를 스태킹합니다.

시행 착오의 조금 후에 나는 추가하여 주입 스타일 시트로 작업을 진행하게 관리했습니다 :

#ol-main-header, 
#cl-footer { 
    -webkit-transform: translateZ(0); 
} 

은 또한 당신은 unnecesarry z-index: 99999 제거 할 수 있어야한다. 희망이 도움이됩니다.

+0

Safari에서 정상적으로 작동하는 것처럼 보이지만 Windows에서 Chrome에서 오버레이가 열리면 두드러진 "jank"가 추가됩니다. – Lionel

+0

그것을 보지 않고 잘못을 말하는 것은 약간 어렵습니다. 테스트 환경에서 변경을 수행 할 수 있다면 확인해 볼 수 있습니다. –

+0

여기에 가세요 : https://testing.enuvo.ch/user3/collect/#collector#/user3/overlay/ – Lionel