| 415 | }; |
| 416 | |
| 417 | var innerHTML = function (elem) { |
| 418 | var text; |
| 419 | |
| 420 | switch (elem.type) { |
| 421 | case 'tag': |
| 422 | case 'script': |
| 423 | case 'style': |
| 424 | text = '<' + elem.raw + '>'; |
| 425 | //Skip if the tag is <short /> |
| 426 | if (elem.raw[elem.raw.length-1] !== '/') { |
| 427 | if (elem.children && elem.children.length > 0) { |
| 428 | for (var i = 0, l = elem.children.length; i < l; i++) { |
| 429 | text += innerHTML(elem.children[i]); |
| 430 | } |
| 431 | } |
| 432 | text += '</' + elem.name + '>'; |
| 433 | } |
| 434 | break; |
| 435 | |
| 436 | case 'comment': |
| 437 | text = '<!--' + elem.raw + '-->'; |
| 438 | break; |
| 439 | |
| 440 | case 'text': |
| 441 | text = elem.raw; |
| 442 | break; |
| 443 | |
| 444 | default: |
| 445 | break; |
| 446 | } |
| 447 | |
| 448 | return text; |
| 449 | }; |
| 450 | |
| 451 | //Define getters |
| 452 | elem.__defineGetter__('rawtext', rawtext); |