flex-users / flex-iframe

IFrame component for Flex applications.
github.com/flex-users/flex-iframe
120 stars 63 forks source link

Using the browser/OS zoom leads to IFrames with a wrong size and placement #60

Closed nicoulaj closed 13 years ago

nicoulaj commented 13 years ago

Originally filed by Julien.N...@gmail.com on 2009-10-12T21:17:45

What steps will reproduce the problem? Use your browser zoom, or activate the "Big fonts" options on Windows for example.

What is the expected output? What do you see instead? IFrames's div dimensions follow the zoom instead of staying the same...

nicoulaj commented 13 years ago

Updated by Julien.N...@gmail.com on 2009-10-12T21:54:07

I took inspiration here: http://arielsommeria.com/blog/2009/04/22/firefoxs-zoom-messes-up-iframes-with-flex-heres-the-fix/

It looks like it fixes the Windows "Big fonts option" issue on all browsers.

For the browser zoom: it works for Firefox, Chrome and Safari. IE8 and Opera still have the problem.

This is because it uses the "innerWidth" property, which does not figure in any W3C spec (https://developer.mozilla.org/en/DOM/window.innerWidth).

Note: some ideas for IE/Opera: zoomLevel = Math.round((self.document.body.parentElement.offsetWidth / self.document.body.offsetWidth) * 100);

var rect = document.body.getBoundingClientRect(); var zoomLevel = Math.round( (rect.right-rect.left)/document.body.clientWidth * 100);

nicoulaj commented 13 years ago

Updated by Julien.N...@gmail.com on 2009-10-14T16:01:20

Seems to be fixed for Firefox, IE8, Chrome, Opera and Safari.

The solution uses self.document.body.parentElement.offsetWidth or innerWidth depending on the browser.

Original ticket set status to Fixed (we converted to closed)

nicoulaj commented 13 years ago

Updated by Julien.N...@gmail.com on 2009-10-19T09:13:01

Issue 25 has been merged into this issue.

nicoulaj commented 13 years ago

Updated by andr....@gmail.com on 2009-10-23T11:25:49

I've tried last version 1.4 and it doesn't work for IE7. I think it is caused by the fact that when the resize event is caught and the adjustPosition function is called the Application still haven't correct width which correspond to new scale. I've set recalculateBrowserScaling to be always true and it seemed to fix the issue. (When application rerendered due to Application resize scale determined correctly)

nicoulaj commented 13 years ago

Updated by Julien.N...@gmail.com on 2009-10-30T14:34:51

See Issue 40 for IE7.

Original ticket set status to Verified (we converted to closed)

nicoulaj commented 13 years ago

Updated by polok5...@gmail.com on 2010-09-29T07:49:39

http://msdn.microsoft.com/en-us/library/cc849094%28v=vs.85%29.aspx

here can use the screen.deviceXDPI on IE, to detect the zoom level