| 47 | | echo "function convertEntities(o) {\n"; |
| 48 | | echo " var c = function(s) {\n"; |
| 49 | | echo " if (/&[^;]+;/.test(s)) {\n"; |
| 50 | | echo " var e = document.createElement('div');\n"; |
| 51 | | echo " e.innerHTML = s;\n"; |
| 52 | | echo " return !e.firstChild ? s : e.firstChild.nodeValue;\n"; |
| 53 | | echo " }\n"; |
| 54 | | echo " return s;\n"; |
| 55 | | echo " }\n"; |
| 56 | | echo " if ( typeof o === 'string' ) {\n"; |
| 57 | | echo " return c(o);\n"; |
| 58 | | echo " } else if ( typeof o === 'object' ) {\n"; |
| 59 | | echo " for (var v in o) {\n"; |
| 60 | | echo " if ( typeof o[v] === 'string' )\n"; |
| 61 | | echo " o[v] = c(o[v]);\n"; |
| 62 | | echo " }\n"; |
| 63 | | echo " }\n"; |
| 64 | | echo " return o;\n"; |
| 65 | | echo "};\n"; |
| | 109 | |
| | 110 | function print_once() { |
| | 111 | if ( $this->print_once_done ) |
| | 112 | return; |
| | 113 | |
| | 114 | echo "<script type='text/javascript'>\n"; |
| | 115 | echo "/* <![CDATA[ */\n"; |
| | 116 | echo "function convertEntities(o) {\n"; |
| | 117 | echo " var c = function(s) {\n"; |
| | 118 | echo " if (/&[^;]+;/.test(s)) {\n"; |
| | 119 | echo " var e = document.createElement('div');\n"; |
| | 120 | echo " e.innerHTML = s;\n"; |
| | 121 | echo " return !e.firstChild ? s : e.firstChild.nodeValue;\n"; |
| | 122 | echo " }\n"; |
| | 123 | echo " return s;\n"; |
| | 124 | echo " }\n"; |
| | 125 | echo " if ( typeof o === 'string' ) {\n"; |
| | 126 | echo " return c(o);\n"; |
| | 127 | echo " } else if ( typeof o === 'object' ) {\n"; |
| | 128 | echo " for (var v in o) {\n"; |
| | 129 | echo " if ( typeof o[v] === 'string' )\n"; |
| | 130 | echo " o[v] = c(o[v]);\n"; |
| | 131 | echo " }\n"; |
| | 132 | echo " }\n"; |
| | 133 | echo " return o;\n"; |
| | 134 | echo "};\n"; |
| | 135 | echo "/* ]]> */\n"; |
| | 136 | echo "</script>\n"; |
| | 137 | |
| | 138 | $this->print_once_done = true; |
| | 139 | } |