2016-01-06 10 views
9

Moja strona skacze do góry, kiedy umieścić ten GDrive iframe, po kliknięciu na iframe:Page skacze do góry, gdy iframe kliknięciu

<iframe height="400px" frameborder="0" width="600px" src="https://docs.google.com/document/d/1u9NFjTPBd-9mucQUPvkqLP84iV6uaEcJNF5vQdHmYh8/edit?usp=sharing&rm=embedded"></iframe> 

JSFiddle: https://jsfiddle.net/0qpe53os/

pytanie: Dlaczego to robi zrób to i jak mogę temu zapobiec?

Próbowałem bezskutecznie próbować preventDefault. Bardzo dziękuję z góry za pomoc.

+0

Mybe to może ci pomóc http://stackoverflow.com/questions/26017978/iframe-causes-parent-elements-to-scroll-up-on-google-chrome-when-url-contains-fr – elTomato

+0

Zobacz tutaj : http://stackoverflow.com/questions/26017978/iframe-causes-parent-elements-to-scroll-up-on-google-chrome-when-url-contains-fr – leodido

Odpowiedz

-2

Możesz użyć javascript, aby sprawdzić, czy element iframe jest aktywnym elementem i odskoczyć do niego, jeśli jest aktywny.

if(document.activeElement.tagName == 'IFRAME') { document.activeElement.scrollIntoView() }

Zobacz ten Jsfiddle na przykład pracy.

1

Nie jestem pewien, czy jest to przydatne. Przy okazji możesz użyć atrybutu onload, aby przewinąć stronę w dół: onload = "scroll (0, screen.height);"

<iframe height="400px" frameborder="0" width="600px" src="https://docs.google.com/document/d/1u9NFjTPBd-9mucQUPvkqLP84iV6uaEcJNF5vQdHmYh8/edit?usp=sharing&rm=embedded" onload="scroll(0,screen.height);"></iframe> 
0

Z mojego dochodzenia nie wynika z samego elementu iframe. Jego przyczyną jest javascript wykonany przez wbudowane google docs. Gdy obszar edycji w Google Docs otrzymuje fokus, tak się dzieje. Jeśli wejdziesz do obszaru menu nic się nie stanie, chyba że coś zostanie dodane do edytowanego obszaru. Próbowałem ograniczyć element iframe za pomocą atrybutu sandbox i to zachowanie już się nie dzieje, ale oczywiście nie można używać dokumentów google.

Niestety nie ma rozwiązań, które można zasugerować.