MagicFrame uses standard HTML, CSS, and JavaScript features that are well-supported across modern browsers. This page provides information about browser compatibility and potential issues.
MagicFrame should work in all modern browsers that support iframes and basic JavaScript:
| Browser | Minimum Version | Notes |
|---|---|---|
| Chrome | 4+ | Full support |
| Firefox | 3.5+ | Full support |
| Safari | 4+ | Full support |
| Edge | All versions | Full support |
| Internet Explorer | 8+ | Limited support in IE8-9 (see notes below) |
| Opera | 10.5+ | Full support |
| Mobile Safari | iOS 3+ | Full support |
| Android Browser | Android 2.2+ | Full support |
The <iframe> element is supported in all modern browsers. The fallback content (<p>Your browser does not support iframes.</p>) will only be displayed in very old browsers that don't support iframes.
MagicFrame uses the following JavaScript features:
- DOM Manipulation:
document.getElementById()- Supported in all modern browsers - Event Handling:
onloadevent - Supported in all modern browsers - Window Location:
window.location.searchandwindow.location.hash- Supported in all modern browsers
The CSS used in MagicFrame is basic and well-supported:
html, body {
margin: 0px;
padding: 0px;
overflow: hidden;
height: 100%;
}These properties are supported in all modern browsers.
In Internet Explorer 8 and 9, there may be issues with:
- Title synchronization: The
contentWindow.document.titleproperty might not be accessible for cross-origin iframes - Hash fragment handling: There might be inconsistencies in how hash fragments are processed
On some mobile browsers, there might be issues with:
- Viewport sizing: The iframe might not correctly fill the entire viewport on some mobile devices
- Scrolling behavior: The
scrolling='auto'attribute might behave differently across mobile browsers
As detailed in the Security Considerations page, cross-origin restrictions may prevent title synchronization and other interactions between MagicFrame and the iframe content.
When implementing MagicFrame, we recommend testing in:
- Multiple desktop browsers: Chrome, Firefox, Safari, Edge
- Mobile browsers: iOS Safari, Android Chrome
- Different viewport sizes: Desktop, tablet, and mobile sizes
If you encounter issues with the iframe not filling the entire viewport on mobile devices, you can add the following meta tag to the <head> section:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">If you encounter issues with scrolling behavior, you can try different values for the scrolling attribute:
<iframe scrolling="yes">...</iframe> <!-- Always show scrollbars -->
<iframe scrolling="no">...</iframe> <!-- Never show scrollbars -->
<iframe scrolling="auto">...</iframe> <!-- Show scrollbars when needed (default) -->Or use CSS to control overflow behavior:
iframe {
overflow: auto; /* or 'scroll', 'hidden', etc. */
}