Fehler beim Html-Code in WebGadget eingefügen

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Christian+
Beiträge: 213
Registriert: 13.07.2008 10:05
Computerausstattung: Windows 8.1 Pro
AMD Phenom II X4 955 @ 3.2 GHz
4GB RAM
NVIDIA GeForce GTX 660

Fehler beim Html-Code in WebGadget eingefügen

Beitrag 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
Windows 8.1 Pro 64Bit | AMD Phenom II X4 955 @ 3.2 GHz | 4GB RAM | NVIDIA GeForce GTX 660
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Re: Fehler beim Html-Code in WebGadget eingefügen

Beitrag 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..
Bild
tmjuk
Beiträge: 380
Registriert: 30.06.2006 00:10
Wohnort: Backaryd, Schweden

Re: Fehler beim Html-Code in WebGadget eingefügen

Beitrag 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. :shock:
PB 4.51 32 Windows Vista, 32 XP, PB 4.51 32 Ubuntu 10.10
Christian+
Beiträge: 213
Registriert: 13.07.2008 10:05
Computerausstattung: Windows 8.1 Pro
AMD Phenom II X4 955 @ 3.2 GHz
4GB RAM
NVIDIA GeForce GTX 660

Re: Fehler beim Html-Code in WebGadget eingefügen

Beitrag 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
Windows 8.1 Pro 64Bit | AMD Phenom II X4 955 @ 3.2 GHz | 4GB RAM | NVIDIA GeForce GTX 660
Benutzeravatar
Vera
Beiträge: 928
Registriert: 18.03.2009 14:47
Computerausstattung: Win XP SP2, Suse 11.1
Wohnort: Essen

Re: Fehler beim Html-Code in WebGadget eingefügen

Beitrag 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
°
<°)))o><
~~~~~~~~~
echo "Don't worry"
echo "Keep quiet"
@echo off
format forum:\
Antworten