Seite 1 von 1
Fehler beim Html-Code in WebGadget eingefügen
Verfasst: 08.08.2010 22:46
von Christian+
Ich bin auf ein seltsames verhalten beim Html-Code in WebGadget einfügen gestoßen und zwar wird beim Verwenden von SetGadgetItemText( 0, #PB_Web_HtmlCode, html$ ) immer ein zusätzliches Zeichen am Ende angehängt. Hier der Code der den Fehler zeigt einfach in den WebGadgets auf Rechtsklick Quellcode anzeigen klicken dann sieht man das im linken Gadget der HTML Code in der letzten Zeile nach "</html>" noch ein Zeichen hat und nicht mit dem > Schluss ist.
Code: Alles auswählen
EnableExplicit
OpenWindow( 0, 0, 0, 600, 300, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered )
WebGadget( 0, 10, 10, 280, 280, "" )
WebGadget( 1, 310, 10, 280, 280, "" )
Define html$
html$ + "<!DOCTYPE HTML PUBLIC " + Chr(34) + "-//W3C//DTD HTML 4.01 Transitional//EN" + Chr(34) + ">" + #CRLF$
html$ + "<html>" + #CRLF$
html$ + "<head>" + #CRLF$
html$ + "<title>" + "WebGadget Test" + "</title>" + #CRLF$
html$ + "</head>" + #CRLF$
html$ + "<body>" + #CRLF$
html$ + "<p>Test</p>" + #CRLF$
html$ + "</body>" + #CRLF$
html$ + "</html>"
SetGadgetItemText( 0, #PB_Web_HtmlCode, html$ )
CreateFile( 0, GetCurrentDirectory() + "test.html" )
WriteString( 0, html$, #PB_UTF8 )
CloseFile( 0 )
SetGadgetText( 1, "file://"+ GetCurrentDirectory() + "test.html" )
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
Re: Fehler beim Html-Code in WebGadget eingefügen
Verfasst: 08.08.2010 22:55
von Jilocasin
Das muss nicht direkt mit dem SetGadgetItemText zusammenhängen. Lass das mal weg und schau dir dann den Quellcode an.
Da kommt bei mir dann zwar nur "<HTML></HTML> " heraus, aber schon da ist das Leerzeichen vorhanden.
Auch wenn das ja eigentlich wirklich nicht weiter stört..
Re: Fehler beim Html-Code in WebGadget eingefügen
Verfasst: 09.08.2010 01:09
von tmjuk
Ja, etwas merkwürdig. Auch wenn es keinen Einfluss auf das Resultat hat.
Verwendet man allerdings diesen Code:
Code: Alles auswählen
EnableExplicit
OpenWindow( 0, 0, 0, 600, 300, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered )
WebGadget( 0, 10, 10, 280, 280, "" )
WebGadget( 1, 310, 10, 280, 280, "" )
Define html$
html$ + "<!DOCTYPE HTML PUBLIC " + Chr(34) + "-//W3C//DTD HTML 4.01 Transitional//EN" + Chr(34) + ">" + #CRLF$
html$ + "<html>" + #CRLF$
html$ + "<head>" + #CRLF$
html$ + "<title>" + "WebGadget Test" + "</title>" + #CRLF$
html$ + "</head>" + #CRLF$
html$ + "<body>" + #CRLF$
html$ + "<p>Test</p>" + #CRLF$
html$ + "</body>" + #CRLF$
html$ + "</html>"
CreateFile( 0, GetCurrentDirectory() + "test.html" )
WriteString( 0, html$, #PB_UTF8 )
CloseFile( 0 )
SetGadgetText( 0, "file://"+ GetCurrentDirectory() + "test.html" )
SetGadgetText( 1, "file://"+ GetCurrentDirectory() + "test.html" )
SetGadgetItemText( 0, #PB_Web_HtmlCode, html$ )
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
hat man den Quellcode ohne Leerzeichen am Ende.

Re: Fehler beim Html-Code in WebGadget eingefügen
Verfasst: 09.08.2010 07:25
von Christian+
Wird SetGadgetItemText verwendet wird immer ein Zeichen angehängt übergibt man eine Datei dann nicht.
Dein Code geht nur weil SetGadgetItemText dann seltsamerweise gar nicht beachtet wird siehe dieses Beispiel beide Webgadgets zeigen Test 1 an.
Code: Alles auswählen
EnableExplicit
OpenWindow( 0, 0, 0, 600, 300, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered )
WebGadget( 0, 10, 10, 280, 280, "" )
WebGadget( 1, 310, 10, 280, 280, "" )
Define html$
html$ = "<!DOCTYPE HTML PUBLIC " + Chr(34) + "-//W3C//DTD HTML 4.01 Transitional//EN" + Chr(34) + ">" + #CRLF$
html$ + "<html>" + #CRLF$
html$ + "<head>" + #CRLF$
html$ + "<title>" + "WebGadget Test" + "</title>" + #CRLF$
html$ + "</head>" + #CRLF$
html$ + "<body>" + #CRLF$
html$ + "<p>Test 1</p>" + #CRLF$
html$ + "</body>" + #CRLF$
html$ + "</html>"
CreateFile( 0, GetCurrentDirectory() + "test.html" )
WriteString( 0, html$, #PB_UTF8 )
CloseFile( 0 )
SetGadgetText( 0, "file://"+ GetCurrentDirectory() + "test.html" )
SetGadgetText( 1, "file://"+ GetCurrentDirectory() + "test.html" )
html$ = "<!DOCTYPE HTML PUBLIC " + Chr(34) + "-//W3C//DTD HTML 4.01 Transitional//EN" + Chr(34) + ">" + #CRLF$
html$ + "<html>" + #CRLF$
html$ + "<head>" + #CRLF$
html$ + "<title>" + "WebGadget Test" + "</title>" + #CRLF$
html$ + "</head>" + #CRLF$
html$ + "<body>" + #CRLF$
html$ + "<p>Test 2</p>" + #CRLF$
html$ + "</body>" + #CRLF$
html$ + "</html>"
SetGadgetItemText( 0, #PB_Web_HtmlCode, html$ )
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
Re: Fehler beim Html-Code in WebGadget eingefügen
Verfasst: 09.08.2010 11:27
von Vera
@ Jilocasin
Was die Anzeige im Browser angeht, stört das zusätzliche Zeichen nicht. Da es sich aber um ein NULL-bit handelt, ist das nicht so günstig, will man dann den Code aus dem Webgadget via Quellcode holen.
@ tmjuk
wie Christian bemerkt, klappt Dein Beispiel nicht, da dieser Befehl schon vor dem Laden der HTML abgearbeitet wurde. Wenn Du einen anderen Text nehmen würdest, siehst Du, dass er nicht erscheint.
@ All
Vielleicht ist dieses angehängte Zeichen ein PB-internes Steuerzeichen, das beim korrekten Export ja auch nicht vorhanden ist. Ein indirekter Export via Webgadget- Browserkontext- Quellcode ist ja nicht als regulärer Weg vorgesehen.
Hierzu wär's gut, wenn sich mal ein erfahrener Programmierer o. Teammitglied melden würde.
Bei der ganzen Testerei (mit komischen Unstimmigkeiten), sind mir noch zwei wichtige Dinge klar geworden:
- ob bei SetGadgetItemText ... eine UTF-8 oder ANSI im Webgadget erzeugt wird, hängt davon ab, ob real gestreamter Text (incl Titel) ohne oder mit Umlauten ist [wenn Umlaute, dann ANSI]. (die angehängte NULL ist immer dabei. Da ja eine interne Prüfung stattfindet, ist das vielleicht ein 'Prüfsiegel'?)
- eine exportierte HTML ist unabhängig vom Text, immer in ANSI, ausser es wird bei WriteString via #PB_UTF8 bestimmt UND es sind Umlaute vorhanden
Zum deutlicheren Erkennen, was was macht, ist besser, bei den Beispielen Text mit Umlauten zu benutzen. Dann merkt man auch, dass man beim Export ggf. den 'content-type' (bes. bei UFT-8) mit übergeben sollte.
Gruß ~ Vera