1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 2<html xmlns="http://www.w3.org/1999/xhtml"> 3<head> 4 <title></title> 5 <script type="text/javascript" src="../../tiny_mce.js"></script> 6 <script type="text/javascript"> 7 function patchCallback(settings, key) { 8 if (settings[key]) 9 settings[key] = "window.opener." + settings[key]; 10 } 11 12 var settings = {}, paSe = window.opener.tinyMCE.activeEditor.settings, oeID = window.opener.tinyMCE.activeEditor.id; 13 14 // Clone array 15 for (var n in paSe) 16 settings[n] = paSe[n]; 17 18 // Override options for fullscreen 19 for (var n in paSe.fullscreen_settings) 20 settings[n] = paSe.fullscreen_settings[n]; 21 22 // Patch callbacks, make them point to window.opener 23 patchCallback(settings, 'urlconverter_callback'); 24 patchCallback(settings, 'insertlink_callback'); 25 patchCallback(settings, 'insertimage_callback'); 26 patchCallback(settings, 'setupcontent_callback'); 27 patchCallback(settings, 'save_callback'); 28 patchCallback(settings, 'onchange_callback'); 29 patchCallback(settings, 'init_instance_callback'); 30 patchCallback(settings, 'file_browser_callback'); 31 patchCallback(settings, 'cleanup_callback'); 32 patchCallback(settings, 'execcommand_callback'); 33 patchCallback(settings, 'oninit'); 34 35 // Set options 36 delete settings.id; 37 settings['mode'] = 'exact'; 38 settings['elements'] = 'fullscreenarea'; 39 settings['add_unload_trigger'] = false; 40 settings['ask'] = false; 41 settings['document_base_url'] = window.opener.tinyMCE.activeEditor.documentBaseURI.getURI(); 42 settings['fullscreen_is_enabled'] = true; 43 settings['fullscreen_editor_id'] = oeID; 44 settings['theme_advanced_resizing'] = false; 45 settings['strict_loading_mode'] = true; 46 47 settings.save_onsavecallback = function() { 48 window.opener.tinyMCE.get(oeID).setContent(tinyMCE.get('fullscreenarea').getContent({format : 'raw'}), {format : 'raw'}); 49 window.opener.tinyMCE.get(oeID).execCommand('mceSave'); 50 window.close(); 51 }; 52 53 function unloadHandler(e) { 54 moveContent(); 55 } 56 57 function moveContent() { 58 window.opener.tinyMCE.get(oeID).setContent(tinyMCE.activeEditor.getContent()); 59 } 60 61 function closeFullscreen() { 62 moveContent(); 63 window.close(); 64 } 65 66 function doParentSubmit() { 67 moveContent(); 68 69 if (window.opener.tinyMCE.selectedInstance.formElement.form) 70 window.opener.tinyMCE.selectedInstance.formElement.form.submit(); 71 72 window.close(); 73 74 return false; 75 } 76 77 function render() { 78 var e = document.getElementById('fullscreenarea'), vp, ed, ow, oh, dom = tinymce.DOM; 79 80 e.value = window.opener.tinyMCE.get(oeID).getContent(); 81 82 vp = dom.getViewPort(); 83 settings.width = vp.w; 84 settings.height = vp.h - 15; 85 86 tinymce.dom.Event.add(window, 'resize', function() { 87 var vp = dom.getViewPort(); 88 89 tinyMCE.activeEditor.theme.resizeTo(vp.w, vp.h); 90 }); 91 92 tinyMCE.init(settings); 93 } 94 95 // Add onunload 96 tinymce.dom.Event.add(window, "beforeunload", unloadHandler); 97 </script> 98</head> 99<body style="margin:0;overflow:hidden;width:100%;height:100%" scrolling="no" scroll="no"> 100<form onsubmit="doParentSubmit();"> 101<textarea id="fullscreenarea" style="width:100%; height:100%"></textarea> 102</form> 103 104<script type="text/javascript"> 105 render(); 106</script> 107 108</body> 109</html> 110