WebGadget BaseDir

Für allgemeine Fragen zur Programmierung mit PureBasic.
Nero
Beiträge: 285
Registriert: 08.11.2004 01:50

WebGadget BaseDir

Beitrag von Nero »

Hiho,

ich hab da ein kleines problemchen.
Um diesen blöden click Sound beim WebGadget zu umgehen Stream ich den html Content direckt in das Gadget.
Allerdings muss ich nun irgendwie das BaseDir für das Gadget ändern.
Es gibt ja den <base> html tag, leider funktioniert dieser nur mit html:// und nicht mit file:// .

Hat eventuel jemand von euch eine Idee wie ich dem Gadget den richtigen pfad mitteilen kann ohne das
html dokument direckt zu laden?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: WebGadget BaseDir

Beitrag von ts-soft »

Vorher den Pfad setzen: SetCurrentDirectory()?
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Nero
Beiträge: 285
Registriert: 08.11.2004 01:50

Re: WebGadget BaseDir

Beitrag von Nero »

Geht leider nicht.
Dem WebGadget scheint der programmpfad egal zu sein.
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: WebGadget BaseDir

Beitrag von Danilo »

Nero hat geschrieben:Es gibt ja den <base> html tag, leider funktioniert dieser nur mit html:// und nicht mit file:// .
Mit PB 4.51 geht es bei mir.

Code: Alles auswählen

dir$ = "d:/test/"
pic$ = "mein.jpg"

header$ = "<!DOCTYPE html PUBLIC "
header$ + #DQUOTE$+"-//W3C//DTD XHTML 1.0 Strict//EN"+#DQUOTE$
header$ + #DQUOTE$+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"+#DQUOTE$
header$ + ">"
header$ + "<html xmlns="
header$ + #DQUOTE$+"http://www.w3.org/1999/xhtml"+#DQUOTE$
header$ + "> <head>"
header$ + "<base href="+#DQUOTE$+"file://"+dir$+#DQUOTE$+"/>"
header$ + " </head>"

body$   = "<body><center>...</center>"
body$   + "<img src="+#DQUOTE$+pic$+#DQUOTE$+"/>"
body$   + "</body>"

footer$ = "</html>"

mainWindow = OpenWindow(#PB_Any, 0, 0, 600, 300, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If mainWindow
   web = WebGadget(#PB_Any, 10, 10, 580, 280, "")
   SetGadgetItemText(web,#PB_Web_HtmlCode,header$+body$+footer$)
   Repeat
   Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Nero
Beiträge: 285
Registriert: 08.11.2004 01:50

Re: WebGadget BaseDir

Beitrag von Nero »

Ah ich hab das problem gefunden ^_^
Ich hatte im HTML code folgendes mit im header

Code: Alles auswählen

<meta http-equiv="X-UA-Compatible" content="IE=8" />
Solange dies mit drinn war hat es den base tag ignoriert.


======================
Ok so funktioniert es zwar nur ist nun die kompatibilität mit dem IE8 nicht mehr gegeben und das design
hats zerlegt :lol:
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: WebGadget BaseDir

Beitrag von Danilo »

Nero hat geschrieben:Ok so funktioniert es zwar nur ist nun die kompatibilität mit dem IE8 nicht mehr gegeben und das design
hats zerlegt :lol:
Ist ein WebGadget mit dem Flag #PB_Web_Mozilla für Dich eine Alternative?

Ansonsten hilft wohl nur Design anpassen, so daß es mit allen IE-Versionen
läuft, die beim Benutzer evtl. installiert sein könnten.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Re: WebGadget BaseDir

Beitrag von AND51 »

Nero hat geschrieben:Es gibt ja den <base> html tag, leider funktioniert dieser nur mit html:// und nicht mit file:// .
Es heißt ja auch nicht "html://", sondern "http://".
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: WebGadget BaseDir

Beitrag von DarkDragon »

AND51 hat geschrieben:
Nero hat geschrieben:Es gibt ja den <base> html tag, leider funktioniert dieser nur mit html:// und nicht mit file:// .
Es heißt ja auch nicht "html://", sondern "http://".
Dachte ich auch, aber es hat ja anscheinend mit "html://" funktioniert, deshalb hab ich mich da zurückgehalten! Vielleicht hat er ja ein eigenes Protokoll mit Handler geschrieben und es halt "html" genannt.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Nero
Beiträge: 285
Registriert: 08.11.2004 01:50

Re: WebGadget BaseDir

Beitrag von Nero »

Es ist natürlich http:// :coderselixir: beim tippen hier nicht nachgedacht :oops:
Danilo hat geschrieben:Ist ein WebGadget mit dem Flag #PB_Web_Mozilla für Dich eine Alternative?

Ansonsten hilft wohl nur Design anpassen, so daß es mit allen IE-Versionen
läuft, die beim Benutzer evtl. installiert sein könnten.
Das Programm soll portabel ohne install laufen, daher wirds mit dem FF activex leider nix.

Da bleibt wohl nur design anpassen /:->
Nero
Beiträge: 285
Registriert: 08.11.2004 01:50

Re: WebGadget BaseDir

Beitrag von Nero »

Also so langsam nervt das WebGadget /:->

Ich binde eine externe JavaScript datei ein, darin sind 2 functionen.
Wen ich diese Seite direckt im IE aufrufe funktioniert das auch prima
aber wen ich das nun in das WebGadget streame meldet es eine JSScript error das zeichen 1 in zeile 1 ein ungültiges
Zeichen wäre >_<
Da ist allerdings ne leerzeile....
Naja ich hab mal die funktionen entfernt und nur nen alert(123); reingemacht, die error kommt weiterhin :bluescreen:
selbst wen die Datei leer ist kommt die error.

Im IE funktionierts wie gesagt ohne probleme :?

Edit:
================================
Ok hab übersehen das ich im IE auch erst das JS erlauben muß bevor es ausgeführt wird.
Wen ich dies nicht mache hab ich ein ähnliches problem.
Sieht wohl so aus als ob JS im Webgadget nicht 100% erlaubt wird, denn
JS direct im HTML code funktioniert nur aus externen files gibts probleme.
Antworten