[3.2] BBCode schneidet Javascript ab
Verfasst: 26.07.2017 20:20
Nach der Hochrüstung auf phpBB 3.2.0 funktionieren einige Tabellen BBCodes die Javascript enthalten nicht mehr. Da es im BBCode Parser wohl Probleme gegeben haben soll, habe ich erst einmal die Version 3.2.1 abgewartet. Nachdem die Fehler nicht verschwunden sind brauche ich euren Rat.
Es geht um folgendes Script (für den Test wird die Variabele direkt im Script gesetzt):
Das Script erzeugt eine kleine Tabelle, die aber nicht erscheint. Wenn ich mir den Seitenquelltext ansehe, fällt mir auf, dass nicht das ganze Script in die Seite eingebaut wurde. Auf der Seite finde ich dieses Script:
Klar das da nichts passiert, da das Script nicht vollständig in die Seite übernommen wurde. Aber was ist dafür verantwortlich??? Gibt es eine maximale Länge für ein Script???
Gruß Berthold
Es geht um folgendes Script (für den Test wird die Variabele direkt im Script gesetzt):
Code: Alles auswählen
<script language="Javascript">
// var texto = '{TEXT}';
var texto = 'L=Titel1&Titel2&Titel3 L=Z1 Spalte 1&Z1 Spalte 2&Z1 Spalte 3 L=Z2 Spalte 1&Z2 Spalte 2&Z2 Spalte 3 L=Z3 Spalte 1&Z3 Spalte 2&Z3 Spalte 3';
texto = texto.replace("\r\n","");
texto = texto.replace("<br>","");
texto = texto.replace(" ","");
var zeilen = new Array();
zeilen = texto.split('L=');
var table = '<svg height=\"0px\">\r';
table = table + '<style>\r';
table = table + '.divTable{\r';
table = table + ' display: table;\r';
table = table + ' width: 70%;\r';
table = table + '}\r';
table = table + '.divTableRow {\r';
table = table + ' display: table-row;\r';
table = table + '}\r';
table = table + '.divTableCell, .divTableHead {\r';
table = table + ' border: 1px solid #999999;\r';
table = table + ' display: table-cell;\r';
table = table + ' padding: 3px 10px;\r';
table = table + '}\r';
table = table + '.divTableHeading {\r';
table = table + ' background-color: #EEE;\r';
table = table + ' display: table-row;\r';
table = table + ' font-weight: bold;\r';
table = table + '}\r';
table = table + '.divTableFoot {\r';
table = table + ' background-color: #EEE;\r';
table = table + ' display: table-footer-group;\r';
table = table + ' font-weight: bold;\r';
table = table + '}\r';
table = table + '.divTableBody {\r';
table = table + ' display: table-row-group;\r';
table = table + '}\r';
table = table + '</style>\r';
table = table + '</svg>\r';
table = table + '\r';
table = table + '<div class=\"divTable\" style=\"width: 70%;border: 1px solid #000;\">\r';
table = table + '<div class=\"divTableBody\">\r';
for (var i=1; i<zeilen.length; i++)
{
if (i == 1){
table = table + '<div class=\"divTableHeading\">\r';
}else{
table = table + '<div class=\"divTableRow\">\r';
}
var coluna = new Array();
spalten = zeilen[i].split('&');
for (var j=0; j<spalten.length; j++)
{
table = table + '<div class=\"divTableCell\">' +spalten[j].replace("amp;","") +'</div>\r'
}
table = table + '</div>\r';
}
table = table + '</div>\r</div>\r';
document.write(table);
</script>
Code: Alles auswählen
<script language="Javascript" data-jsbunblockable="uD7aLGj42WBccqz">
// var texto = '';
var texto = 'L=Titel1&Titel2&Titel3 L=Z1 Spalte 1&Z1 Spalte 2&Z1 Spalte 3 L=Z2 Spalte 1&Z2 Spalte 2&Z2 Spalte 3 L=Z3 Spalte 1&Z3 Spalte 2&Z3 Spalte 3';
texto = texto.replace("\r\n","");
texto = texto.replace("<br>","");
texto = texto.replace(" ","");
var zeilen = new Array();
zeilen = texto.split('L=');
var table = '<svg height=\"0px\">\r';
table = table + '<style>\r';
table = table + '.divTable{\r';
table = table + ' display: table;\r';
table = table + ' width: 70%;\r';
table = table + '}\r';
table = table + '.divTableRow {\r';
table = table + ' display: table-row;\r';
table = table + '}\r';
table = table + '.divTableCell, .divTableHead {\r';
table = table + ' border: 1px solid #999999;\r';
table = table + ' display: table-cell;\r';
table = table + ' padding: 3px 10px;\r';
table = table + '}\r';
table = table + '.divTableHeading {\r';
table = table + ' background-color: #EEE;\r';
table = table + ' display: table-row;\r';
table = table + ' font-weight: bold;\r';
table = table + '}\r';
table = table + '.divTableFoot {\r';
table = table + ' background-color: #EEE;\r';
table = table + ' display: table-footer-group;\r';
table = table + ' font-weight: bold;\r';
table = table + '}\r';
table = table + '.divTableBody {\r';
table = table + ' display: table-row-group;\r';
table = table + '}\r';
table = table + '\r';
table = table + '\r';
table = table + '\r';
table = table + '<div class=\"divTable\" style=\"width: 70%;border: 1px solid #000;\">\r';
table = table + '<div class=\"divTableBody\">\r';
for (var i=1; i<zeilen.length; i++)
{
if (i == 1){
table = table + '<div class=\"divTableHeading\">\r';
}else{
table = table + '<div class=\"divTableRow\">\r';
}
var coluna = new Array();
spalten = zeilen[i].split('&');
for (var j=0; j<spalten.length; j++)
{
table = table + '<div class=\"divTableCell\">' + spalten[j].replace("&","") + '</script>
Gruß Berthold