[Project_owners] Dealing with getElementById().value and xul linebreaks

Foreningen Selvet - Jesper Staun Hansen jesper at selvet.dk
Fri Jul 27 08:25:34 PDT 2007


As reply to all answers (two at the moment :)):

I found that this gave me linebreaks in javascript combined with xul:

<?xml version="1.0" encoding="UTF-8"?>
 
 
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://mozapps/skin/pref/pref.css" 
type="text/css"?>
 
 
<dialog 
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
    title="Read letter"
    id="Readingtree"
    buttons="accept, cancel"
    ondialogaccept="window.close();"
    onload="loadup(); window.sizeToContent();"
    orient="vertical"
    autostretch="always"
    persist="screenX screenY"
    flex="1">
 
<script type="application/x-javascript" 
src="chrome://xmltest/content/xmltestCommon.js"/>
<script type="application/x-javascript" 
src="chrome://xmltest/content/xmltestOptions.js"/>
 
<script>
function loadup() {
        var text = data.indhold;
        var holder = document.getElementById("indhold");
        var lines = text.split("\x0A");
        var descriptionNode = document.createElement("description");
        for (var i = 0; lines.length > i; i++) {
            var linetext = document.createTextNode(lines[i]);
            var breakNode = document.createTextNode("\x0A");
            descriptionNode.appendChild(linetext);
            descriptionNode.appendChild(breakNode);
        }

        holder.appendChild(descriptionNode);}
</script>
 
    <vbox>
        <vbox id="Letter">
            <description id="indhold" 
style="padding-left:2em;white-space: pre;"></description>
        </vbox>
 
    </vbox>
</dialog>



Its a really ugly way to do it, but it seems to work.


Foreningen Selvet - Jesper Staun Hansen wrote:
> Hello in the mailinglist
>
> I asked about this some days ago in a threaded mail, but I would like to 
> redefine my question as to have I have tested.
>
> If I try this (shorted down):
>
> <?xml version="1.0" encoding="UTF-8"?>
>  
>  
> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
> <?xml-stylesheet href="chrome://mozapps/skin/pref/pref.css" 
> type="text/css"?>
>  
>  
> <dialog 
> xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
>     title="Read letter"
>     id="Readingtree"
>     buttons="accept, cancel"
>     ondialogaccept="window.close();"
>     onload="loadup(); window.sizeToContent();"
>     orient="vertical"
>     autostretch="always"
>     persist="screenX screenY"
>     flex="1">
>  
> <script type="application/x-javascript" 
> src="chrome://xmltest/content/xmltestCommon.js"/>
> <script type="application/x-javascript" 
> src="chrome://xmltest/content/xmltestOptions.js"/>
>  
> <script>
> function loadup() {
>         document.getElementById("indhold").value = "lala \n  \x00  \x01  
> \x02  \x03  \x04  \x05  \x06  \x07  \x08  \x09  \x0A  \x0B  \x0C  \x0D 
> \x0E \x0F \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1A \x1B 
> \x1C \x1D \x1E \x1F \x20 \x21 \x22 \x23 \x24 \x25 \x26 \x27 \x28 \x29 
> \x2A \x2B \x2C \x2D \x2E \x2F \x30 \x31 \x32 \x33 \x34 \x35 \x36 \x37 
> \x38 \x39 \x3A \x3B \x3C \x3D \x3E \x3F \x40 \x41 \x42 \x43 \x44 \x45 
> \x46 \x47 \x48 \x49 \x4A \x4B \x4C \x4D \x4E \x4F \x50 \x51 \x52 \x53 
> \x54 \x55 \x56 \x57 \x58 \x59 \x5A \x5B \x5C \x5D \x5E \x5F \x60 \x61 
> \x62 \x63 \x64 \x65 \x66 \x67 \x68 \x69 \x6A \x6B \x6C \x6D \x6E \x6F 
> \x70 \x71 \x72 \x73 \x74 \x75 \x76 \x77 \x78 \x79 \x7A \x7B \x7C \x7D 
> \x7E \x7F \x80 \x81 \x82 \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8A \x8B 
> \x8C \x8D \x8E \x8F \x90 \x91 \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 
> \x9A \x9B \x9C \x9D \x9E \x9F \xA0 \xA1 \xA2 \xA3 \xA4 \xA5 \xA6 \xA7 
> \xA8 \xA9 \xAA \xAB \xAC \xAD \xAE \xAF \xB0 \xB1 \xB2 \xB3 \xB4 \xB5 
> \xB6 \xB7 \xB8 \xB9 \xBA \xBB \xBC \xBD \xBE \xBF \xC0 \xC1 \xC2 \xC3 
> \xC4 \xC5 \xC6 \xC7 \xC8 \xC9 \xCA \xCB \xCC \xCD \xCE \xCF \xD0 \xD1 
> \xD2 \xD3 \xD4 \xD5 \xD6 \xD7 \xD8 \xD9 \xDA \xDB \xDC \xDD \xDE \xDF 
> \xE0 \xE1 \xE2 \xE3 \xE4 \xE5 \xE6 \xE7 \xE8 \xE9 \xEA \xEB \xEC \xED 
> \xEE \xEF \xF0 \xF1 \xF2 \xF3 \xF4 \xF5 \xF6 \xF7 \xF8 \xF9 \xFA \xFB 
> \xFC \xFD \xFE \xFF  \n lala \n";
> }
> </script>
>  
>     <vbox>
>         <vbox id="Letter">
>             <description id="indhold" 
> style="padding-left:2em;white-space: pre;"></description>
>         </vbox>
>  
>     </vbox>
> </dialog>
>
>
> It displays absolutely no linebreaks at all, but just a looooong list of 
> letters and other "strange" (but known) characters. However if I put the 
> (variable) "text" from the script into the <description></description> 
> then at least I see some of the linebreaks I would have expected from my 
> example.
>
> So, do we have a bug in the xul interface handling of javascripts?
> Or how do I get what I want?
>
>
> _______________________________________________
> Project_owners mailing list
> Project_owners at mozdev.org
> http://mozdev.org/mailman/listinfo/project_owners
>
>
>   




More information about the Project_owners mailing list