| <html> |
| <!-- This page is meant to load inside the host browser like IE/FF --> |
| <head><title>Initialize hidden chrome frame</title> |
| <script type="text/javascript" src="chrome_frame_tester_helpers.js"> |
| </script> |
| <script type="text/javascript"> |
| var g_failure_timeout = null; |
| var g_test_id = 1; |
| var g_test_name = 'InitializeHidden'; |
| var g_cf3_loaded = false; |
| |
| function OnNavigationFailed() { |
| onFailure(g_test_name, g_test_id, 'ChromeFrame Navigation failed'); |
| } |
| |
| function OnObjectFocusFailed() { |
| appendStatus('chrome frame focus failed'); |
| onFailure(g_test_name, g_test_id, 'Visibility test failed'); |
| } |
| |
| function OnCF1Loaded() { |
| appendStatus('Chrome frame 1 loaded, not visible yet.'); |
| try { |
| // Make chrome frame visible |
| var cf1 = document.getElementById('CFDiv1'); |
| cf1.style.visibility = 'visible'; |
| appendStatus('Chrome frame 1 visibility - ' + cf1.style.visibility); |
| // Set focus to chrome frame. This should set focus to the |
| // first element inside the frame, which a script inside the |
| // page will detect and notify us back by sending us a message. |
| document.ChromeFrame1.focus(); |
| g_failure_timeout = window.setTimeout(OnObjectFocusFailed, 10000); |
| } catch(e) { |
| appendStatus('Error setting focus to CF1. Error: ' + e.description); |
| onFailure(g_test_name, g_test_id, 'CF1 focus() error'); |
| } |
| } |
| |
| function OnCF1Message(evt) { |
| if (evt.data == 'btnOnFocus') { |
| window.clearTimeout(g_failure_timeout); |
| g_failure_timeout = null; |
| appendStatus('CF1 visible and focused'); |
| |
| // Now make second chrome frame instance visible |
| document.getElementById('CFDiv2').style.display = 'block'; |
| appendStatus('Chrome frame 2 visible, should start loading now'); |
| g_failure_timeout = window.setTimeout(OnObjectFocusFailed, 10000); |
| } |
| } |
| |
| function OnCF2Loaded() { |
| appendStatus('Chrome frame 2 loaded'); |
| try { |
| // Set focus to chrome frame. This should set focus to the |
| // first element inside the frame, which a script inside the |
| // page will detect and notify us back by sending us a message. |
| // We set focus on a timeout as on IE it takes a while for the window |
| // to become visible. |
| setTimeout(SetFocusToCF2, 1000); |
| } catch(e) { |
| appendStatus('Error setting focus to CF2. Error: ' + e.description); |
| onFailure(g_test_name, g_test_id, 'CF2 focus() error'); |
| } |
| }
|
|
|
| function SetFocusToCF2() { |
| try { |
| document.ChromeFrame2.focus();
|
| } catch (e) {
|
| appendStatus('SetFocusToCF2: Error: ' + e.description);
|
| onFailure(g_test_name, g_test_id, 'SetFocusToCF2 error ' +
|
| e.description);
|
| } |
| } |
| |
| function OnCF2Message(evt) { |
| if (evt.data == 'btnOnFocus') { |
| window.clearTimeout(g_failure_timeout); |
| g_failure_timeout = null; |
| appendStatus('CF2 visible and focused'); |
| onSuccess(g_test_name, g_test_id); |
| } |
| } |
| </script> |
| </head> |
| <body> |
| <div id="CFDiv1" style="visibility: hidden;"></div> |
| <script type="text/javascript"> |
| insertControl("CFDiv1", |
| { "id": "ChromeFrame1", |
| "width": "300", |
| "height": "80", |
| "src": "simple_object_focus_cf.html", |
| "eventHandlers": { "onload": "OnCF1Loaded();", |
| "onloaderror": "OnNavigationFailed();", |
| "onmessage": "OnCF1Message(arguments[0]);" }, |
| "objectAttributes": { "tabindex": "0" }, |
| "embedAttributes": {"id": null} |
| }); |
| </script> |
| <div id="CFDiv2" style="display: none;"></div> |
| <script type="text/javascript"> |
| insertControl("CFDiv2", |
| { "id": "ChromeFrame2", |
| "width": "300", |
| "height": "80", |
| "src": "simple_object_focus_cf.html", |
| "eventHandlers": { "onload": "OnCF2Loaded();", |
| "onloaderror": "OnNavigationFailed();", |
| "onmessage": "OnCF2Message(arguments[0]);" }, |
| "objectAttributes": { "tabindex": "1" }, |
| "embedAttributes": { "id": null} |
| }); |
| </script> |
| <div id="statusPanel" style="border: 1px solid red; width: 100%"> |
| Test running.... |
| </div> |
| </body> |
| </html> |