#967 closed defect (worksforme)
widget/RichText.js - document.write unnecessarily wipes page
Reported by: | srini at youos | Owned by: | alex |
---|---|---|---|
Priority: | high | Milestone: | |
Component: | Widgets | Version: | 0.3 |
Keywords: | RichText | Cc: | |
Blocked By: | Blocking: |
Description
RichText? widget does a document.write() which ends up overwriting the entire page if the widget is loaded dynamically after the page has been loaded. This document.write can be avoided.
Possible Fix:
Index: RichText.js =================================================================== --- RichText.js (revision 2588) +++ RichText.js (revision 2589) @@ -20,10 +20,11 @@ dojo.require("dojo.string"); // used to save content -try { - document.write('<textarea id="dojo.widget.RichText.savedContent" ' + - 'style="display:none;position:absolute;top:-100px;left:-100px;height:3px;width:3px;overflow:hidden;"></textarea>'); -}catch(e){ } +//try { +// document.write('<textarea id="dojo.widget.RichText.savedContent" ' + +// 'style="display:none;position:absolute;top:-100px;left:-100px;height:3px;width:3px;overflow:hidden;"></textarea>'); +//}catch(e){ } dojo.widget.defineWidget( "dojo.widget.html.RichText", @@ -195,6 +196,12 @@ if(this.saveName != ""){ var saveTextarea = document.getElementById("dojo.widget.RichText.savedContent"); + // create saved content textarea on demand, under body + if (! saveTextarea) + { + document.body.innerHTML += "<textarea id="dojo.widget.RichText.savedContent" style="display:none;position:absolute;top:-100px;left:-100px;height:3px;width:3px;overflow:hidden;"></textarea>"; + saveTextarea = document.getElementById("dojo.widget.RichText.savedContent"); + } if (saveTextarea.value != "") { var datas = saveTextarea.value.split(this._SEPARATOR); for (var i = 0; i < datas.length; i++) { @@ -1303,6 +1310,12 @@ */ _saveContent: function(e){ var saveTextarea = document.getElementById("dojo.widget.RichText.savedContent"); + // create saved content textarea on demand, under body + if (! saveTextarea) + { + document.body.innerHTML += "<textarea id="dojo.widget.RichText.savedContent" style="display:none;position:absolute;top:-100px;left:-100px;height:3px;width:3px;overflow:hidden;"></textarea>"; + saveTextarea = document.getElementById("dojo.widget.RichText.savedContent"); + } saveTextarea.value += this._SEPARATOR + this.saveName + ":" + this.getEditorContent(); },
Change History (4)
comment:1 Changed 15 years ago by
comment:2 Changed 15 years ago by
Milestone: | → 0.4 |
---|---|
Owner: | changed from anonymous to alex |
I don't believe this is an issue with Editor2. Please verify and close.
comment:3 Changed 14 years ago by
Resolution: | → worksforme |
---|---|
Status: | new → closed |
Note: See
TracTickets for help on using
tickets.
Possible test case using Editor which requires RichText?: