[ticket/11275] Do not use document.write() for color palette

Replace document.write() for color palette function

PHPBB3-11275
This commit is contained in:
Vjacheslav Trushkin 2013-04-12 16:40:32 +03:00
parent c25dfef770
commit fafbce8124
2 changed files with 44 additions and 39 deletions

View file

@ -298,9 +298,12 @@ function storeCaret(textEl) {
* Color pallette * Color pallette
*/ */
function colorPalette(dir, width, height) { function colorPalette(dir, width, height) {
var r = 0, g = 0, b = 0; var r = 0,
var numberList = new Array(6); g = 0,
var color = ''; b = 0,
numberList = new Array(6);
color = '',
html = '';
numberList[0] = '00'; numberList[0] = '00';
numberList[1] = '40'; numberList[1] = '40';
@ -308,37 +311,46 @@ function colorPalette(dir, width, height) {
numberList[3] = 'BF'; numberList[3] = 'BF';
numberList[4] = 'FF'; numberList[4] = 'FF';
document.writeln('<table cellspacing="1" cellpadding="0" border="0">'); html += '<table cellspacing="1" cellpadding="0" border="0">';
for (r = 0; r < 5; r++) { for (r = 0; r < 5; r++) {
if (dir === 'h') { if (dir == 'h') {
document.writeln('<tr>'); html += '<tr>';
} }
for (g = 0; g < 5; g++) { for (g = 0; g < 5; g++) {
if (dir === 'v') { if (dir == 'v') {
document.writeln('<tr>'); html += '<tr>';
} }
for (b = 0; b < 5; b++) { for (b = 0; b < 5; b++) {
color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]); color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]);
document.write('<td bgcolor="#' + color + '" style="width: ' + width + 'px; height: ' + height + 'px;">'); html += '<td bgcolor="#' + color + '" style="width: ' + width + 'px; height: ' + height + 'px;">';
document.write('<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;"><img src="images/spacer.gif" width="' + width + '" height="' + height + '" alt="#' + color + '" title="#' + color + '" /></a>'); html += '<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;"><img src="images/spacer.gif" width="' + width + '" height="' + height + '" alt="#' + color + '" title="#' + color + '" /></a>';
document.writeln('</td>'); html += '</td>';
} }
if (dir === 'v') { if (dir == 'v') {
document.writeln('</tr>'); html += '</tr>';
} }
} }
if (dir === 'h') { if (dir == 'h') {
document.writeln('</tr>'); html += '</tr>';
} }
} }
document.writeln('</table>'); html += '</table>';
return html;
} }
(function($) {
$(document).ready(function() {
$('#color_palette_placeholder').each(function() {
$(this).html(colorPalette('h', 15, 10));
});
});
})(jQuery);
/** /**
* Caret Position object * Caret Position object
*/ */

View file

@ -35,37 +35,30 @@
var panels = new Array('options-panel', 'attach-panel', 'poll-panel'); var panels = new Array('options-panel', 'attach-panel', 'poll-panel');
var show_panel = 'options-panel'; var show_panel = 'options-panel';
function change_palette()
{
dE('colour_palette');
e = document.getElementById('colour_palette');
if (e.style.display == 'block')
{
document.getElementById('bbpalette').value = '{LA_FONT_COLOR_HIDE}';
}
else
{
document.getElementById('bbpalette').value = '{LA_FONT_COLOR}';
}
}
// ]]> // ]]>
</script> </script>
<script type="text/javascript" src="{T_SUPER_TEMPLATE_PATH}/editor.js"></script> <!-- INCLUDEJS template/editor.js -->
<!-- IF S_BBCODE_ALLOWED --> <!-- IF S_BBCODE_ALLOWED -->
<div id="colour_palette" style="display: none;"> <div id="colour_palette" style="display: none;">
<dl style="clear: left;"> <dl style="clear: left;">
<dt><label>{L_FONT_COLOR}{L_COLON}</label></dt> <dt><label>{L_FONT_COLOR}{L_COLON}</label></dt>
<dd> <dd id="color_palette_placeholder"></dd>
<script type="text/javascript">
// <![CDATA[
function change_palette()
{
dE('colour_palette');
e = document.getElementById('colour_palette');
if (e.style.display == 'block')
{
document.getElementById('bbpalette').value = '{LA_FONT_COLOR_HIDE}';
}
else
{
document.getElementById('bbpalette').value = '{LA_FONT_COLOR}';
}
}
colorPalette('h', 15, 10);
// ]]>
</script>
</dd>
</dl> </dl>
</div> </div>