File:
[LON-CAPA] /
loncom /
html /
htmlarea /
popups /
Attic /
fullscreen.html
Revision
1.2:
download - view:
text,
annotated -
select for diffs
Tue Jun 1 23:46:11 2004 UTC (20 years, 1 month ago) by
www
Branches:
MAIN
CVS tags:
version_2_5_X,
version_2_5_99_0,
version_2_5_2,
version_2_5_1,
version_2_5_0,
version_2_4_X,
version_2_4_99_0,
version_2_4_2,
version_2_4_1,
version_2_4_0,
version_2_3_X,
version_2_3_99_0,
version_2_3_2,
version_2_3_1,
version_2_3_0,
version_2_2_X,
version_2_2_99_1,
version_2_2_99_0,
version_2_2_2,
version_2_2_1,
version_2_2_0,
version_2_1_X,
version_2_1_99_3,
version_2_1_99_2,
version_2_1_99_1,
version_2_1_99_0,
version_2_1_3,
version_2_1_2,
version_2_1_1,
version_2_1_0,
version_2_0_X,
version_2_0_99_1,
version_2_0_2,
version_2_0_1,
version_2_0_0,
version_1_99_3,
version_1_99_2,
version_1_99_1_tmcc,
version_1_99_1,
version_1_99_0_tmcc,
version_1_99_0,
version_1_3_X,
version_1_3_3,
version_1_3_2,
version_1_3_1,
version_1_3_0,
version_1_2_X,
version_1_2_99_1,
version_1_2_99_0,
version_1_2_1,
version_1_2_0,
version_1_1_99_5,
version_1_1_99_4,
version_1_1_99_3,
version_1_1_99_2,
version_1_1_99_1,
version_1_1_99_0,
HEAD
Next version HTMLArea.
1: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2: <html>
3: <head>
4: <title>Fullscreen HTMLArea</title>
5: <script type="text/javascript">
6: _editor_url = window.opener._editor_url;
7: _editor_lang = window.opener._editor_lang;
8: var BASE = window.opener.document.baseURI || window.opener.document.URL;
9: var head = document.getElementsByTagName("head")[0];
10: var base = document.createElement("base");
11: base.href = BASE;
12: head.appendChild(base);
13: </script>
14:
15: <script type="text/javascript" src="../htmlarea.js"></script>
16:
17: <script type="text/javascript">
18: // load HTMLArea scripts that are present in the opener frame
19: var scripts = window.opener.HTMLArea._scripts;
20: for (var i = 4; i < scripts.length; ++i) {
21: document.write("<scr" + "ipt type='text/javascript' src='" + scripts[i] + "'></scr" + "ipt>");
22: }
23: </script>
24:
25: <!-- browser takes a coffee break here -->
26: <script type="text/javascript">
27: var parent_object = null;
28: var editor = null; // to be initialized later [ function init() ]
29:
30: /* ---------------------------------------------------------------------- *\
31: Function :
32: Description :
33: \* ---------------------------------------------------------------------- */
34:
35: function _CloseOnEsc(ev) {
36: ev || (ev = window.event);
37: if (ev.keyCode == 27) {
38: // update_parent();
39: window.close();
40: return;
41: }
42: }
43:
44: /* ---------------------------------------------------------------------- *\
45: Function : resize_editor
46: Description : resize the editor when the user resizes the popup
47: \* ---------------------------------------------------------------------- */
48:
49: function resize_editor() { // resize editor to fix window
50: var newHeight;
51: if (document.all) {
52: // IE
53: newHeight = document.body.offsetHeight - editor._toolbar.offsetHeight;
54: if (newHeight < 0) { newHeight = 0; }
55: } else {
56: // Gecko
57: newHeight = window.innerHeight - editor._toolbar.offsetHeight;
58: }
59: if (editor.config.statusBar) {
60: newHeight -= editor._statusBar.offsetHeight;
61: }
62: editor._textArea.style.height = editor._iframe.style.height = newHeight + "px";
63: }
64:
65: /* ---------------------------------------------------------------------- *\
66: Function : init
67: Description : run this code on page load
68: \* ---------------------------------------------------------------------- */
69:
70: function init() {
71: parent_object = opener.HTMLArea._object;
72: var config = HTMLArea.cloneObject( parent_object.config );
73: config.width = "100%";
74: config.height = "auto";
75:
76: // change maximize button to minimize button
77: config.btnList["popupeditor"] = [ 'Minimize Editor', _editor_url + 'images/fullscreen_minimize.gif', true,
78: function() { window.close(); } ];
79:
80: // generate editor and resize it
81: editor = new HTMLArea("editor", config);
82:
83: // register the plugins, if any
84: for (var i in parent_object.plugins) {
85: var plugin = parent_object.plugins[i];
86: editor.registerPlugin2(plugin.name, plugin.args);
87: }
88: // and restore the original toolbar
89: config.toolbar = parent_object.config.toolbar;
90: editor.generate();
91: editor._iframe.style.width = "100%";
92: editor._textArea.style.width = "100%";
93: resize_editor();
94:
95: editor.doctype = parent_object.doctype;
96:
97: // set child window contents and event handlers, after a small delay
98: setTimeout(function() {
99: editor.setHTML(parent_object.getInnerHTML());
100:
101: // switch mode if needed
102: if (parent_object._mode == "textmode") { editor.setMode("textmode"); }
103:
104: // continuously update parent editor window
105: setInterval(update_parent, 500);
106:
107: // setup event handlers
108: document.body.onkeypress = _CloseOnEsc;
109: editor._doc.body.onkeypress = _CloseOnEsc;
110: editor._textArea.onkeypress = _CloseOnEsc;
111: window.onresize = resize_editor;
112: }, 333); // give it some time to meet the new frame
113: }
114:
115: /* ---------------------------------------------------------------------- *\
116: Function : update_parent
117: Description : update parent window editor field with contents from child window
118: \* ---------------------------------------------------------------------- */
119:
120: function update_parent() {
121: // use the fast version
122: parent_object.setHTML(editor.getInnerHTML());
123: }
124:
125: </script>
126: <style type="text/css"> html, body { height: 100%; margin: 0px; border: 0px; background-color: buttonface; } </style>
127: </head>
128: <body scroll="no" onload="setTimeout(function(){init();}, 500)" onunload="update_parent()">
129: <form style="margin: 0px; border: 1px solid; border-color: threedshadow threedhighlight threedhighlight threedshadow;">
130: <textarea name="editor" id="editor" style="width:100%; height:300px"> </textarea>
131: </form>
132: </body>
133: </html>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>