setDir.js (7151B)
1 function setAllDir(value) 2 { 3 for (var i = 0; ; ++i) { 4 try { 5 theElement = document.getElementById("set" + i); 6 theElement.dir = value; 7 } catch(e) { 8 break; 9 } 10 } 11 } 12 13 function setAllDirAttribute(value) 14 { 15 for (var i = 0; ; ++i) { 16 try { 17 theElement = document.getElementById("set" + i); 18 theElement.setAttribute("dir", value); 19 } catch(e) { 20 break; 21 } 22 } 23 } 24 25 function removeAllDirAttribute() 26 { 27 for (var i = 0; ; ++i) { 28 try { 29 theElement = document.getElementById("set" + i); 30 theElement.removeAttribute("dir"); 31 } catch(e) { 32 break; 33 } 34 } 35 } 36 37 function addOneElement(innerHTML) 38 { 39 var container = document.getElementById("container"); 40 var elem = document.createElement("div"); 41 elem.innerHTML = innerHTML; 42 container.appendChild(elem); 43 } 44 45 function addLTRAutoElements() 46 { 47 addOneElement('<input type="text" value="ABC אבג" id="set0" dir="auto">'); 48 addOneElement('<span id="set1" dir="auto">ABC אבג</span>'); 49 addOneElement('<textarea id="set2" dir="auto">ABC אבג</textarea>'); 50 addOneElement('<button id="set3" dir="auto">ABC אבג</button>'); 51 addOneElement('<bdi id="set4">ABC אבג</bdi>'); 52 } 53 54 function addRTLAutoElements() 55 { 56 addOneElement('<input type="text" value="אבג ABC" id="set0" dir="auto">'); 57 addOneElement('<span id="set1" dir="auto">אבג ABC</span>'); 58 addOneElement('<textarea id="set2" dir="auto">אבג ABC</textarea>'); 59 addOneElement('<button id="set3" dir="auto">אבג ABC</button>'); 60 addOneElement('<bdi id="set4">אבג ABC</bdi>'); 61 } 62 63 function setAllTextValuesTo(newText) 64 { 65 for (var i = 0; ; ++i) { 66 theElement = document.getElementById("set" + i); 67 if (!theElement) { 68 break; 69 } 70 if (theElement.tagName == "INPUT" || 71 theElement.tagName == "TEXTAREA") { 72 theElement.value = newText; 73 } else { 74 theElement.firstChild.textContent = newText; 75 } 76 } 77 } 78 79 function setAllTextDefaultValuesTo(newText) 80 { 81 for (var i = 0; ; ++i) { 82 theElement = document.getElementById("set" + i); 83 if (!theElement) { 84 break; 85 } 86 if (theElement.tagName == "INPUT" || 87 theElement.tagName == "TEXTAREA") { 88 theElement.defaultValue = newText; 89 } else { 90 theElement.firstChild.textContent = newText; 91 } 92 } 93 } 94 95 function setAllTextChildrenTo(newText) 96 { 97 for (var i = 0; ; ++i) { 98 theElement = document.getElementById("set" + i); 99 if (!theElement) { 100 break; 101 } 102 if (theElement.tagName == "INPUT") { 103 theElement.value = newText; 104 } else { 105 theElement.firstChild.textContent = newText; 106 } 107 } 108 } 109 110 function appendTextFromArray(textArray) 111 { 112 for (var i = 0; ; ++i) { 113 theElement = document.getElementById("set" + i); 114 if (!theElement) { 115 break; 116 } 117 for (var j = 0; j < textArray.length; ++j) { 118 if (theElement.tagName == "INPUT") { 119 theElement.value += textArray[j]; 120 } else { 121 var textNode = document.createTextNode(textArray[j]); 122 theElement.appendChild(textNode); 123 } 124 } 125 } 126 } 127 128 // Add the members of the array to the text content of the elements in 129 // the document, not including the last member. Then delete the last but 130 // one and add the last one 131 // Useful for testing scenarios like bug 1169267 132 function appendDeleteAppendTextFromArray(textArray) 133 { 134 if (textArray.length < 2) { 135 return; 136 } 137 138 for (var i = 0; ; ++i) { 139 theElement = document.getElementById("set" + i); 140 if (!theElement) { 141 break; 142 } 143 var isInput = (theElement.tagName == "INPUT"); 144 if (!isInput) { 145 var textNode = document.createTextNode(""); 146 theElement.appendChild(textNode); 147 } 148 149 for (var j = 0; j < textArray.length - 1; ++j) { 150 if (isInput) { 151 theElement.value += textArray[j]; 152 } else { 153 textNode.appendData(textArray[j]); 154 } 155 } 156 157 // delete the last element added 158 var deleteElt = textArray[textArray.length - 2]; 159 if (isInput) { 160 theElement.value = theElement.value.slice(0, -deleteElt.length); 161 } else { 162 textNode.deleteData(textNode.length - deleteElt.length, 163 deleteElt.length); 164 } 165 166 // add the next element 167 var addElt = textArray[textArray.length - 1]; 168 if (isInput) { 169 theElement.value += addElt; 170 } else { 171 textNode.appendData(addElt); 172 } 173 } 174 } 175 176 function appendSpansFromArray(textArray) 177 { 178 for (var i = 0; ; ++i) { 179 theElement = document.getElementById("set" + i); 180 if (!theElement) { 181 break; 182 } 183 for (var j = 0; j < textArray.length; ++j) { 184 // fake the result for elements that can't have markup content 185 if (theElement.tagName == "INPUT") { 186 theElement.value += textArray[j]; 187 } else if (theElement.tagName == "TEXTAREA") { 188 theElement.innerHTML += textArray[j]; 189 } else { 190 var span = document.createElement("span"); 191 span.innerHTML = textArray[j]; 192 theElement.appendChild(span); 193 } 194 } 195 } 196 } 197 198 function prependTextFromArray(textArray) 199 { 200 for (var i = 0; ; ++i) { 201 theElement = document.getElementById("set" + i); 202 if (!theElement) { 203 break; 204 } 205 for (var j = 0; j < textArray.length; ++j) { 206 if (theElement.tagName == "INPUT") { 207 theElement.value = textArray[j] + theElement.value; 208 } else { 209 var textNode = document.createTextNode(textArray[j]); 210 theElement.insertBefore(textNode, theElement.firstChild); 211 } 212 } 213 } 214 } 215 216 function prependSpansFromArray(textArray) 217 { 218 for (var i = 0; ; ++i) { 219 theElement = document.getElementById("set" + i); 220 if (!theElement) { 221 break; 222 } 223 for (var j = 0; j < textArray.length; ++j) { 224 // fake the result for elements that can't have markup content 225 if (theElement.tagName == "INPUT") { 226 theElement.value = textArray[j] + theElement.value; 227 } else if (theElement.tagName == "TEXTAREA") { 228 theElement.innerHTML = textArray[j] + theElement.innerHTML; 229 } else { 230 var span = document.createElement("span"); 231 span.innerHTML = textArray[j]; 232 theElement.insertBefore(span, theElement.firstChild); 233 } 234 } 235 } 236 } 237 238 function removeElements() 239 { 240 for (var i = 0; ; ++i) { 241 theElement = document.getElementById("set" + i); 242 if (!theElement) { 243 break; 244 } 245 theElement.remove(); 246 } 247 }