Seite 1 von 1
Neue Webseite in zweitem Webgadget ?
Verfasst: 04.08.2007 00:23
von DerProgrammierer78
Hallo zusammen ... ich wieder ...
Gibt es eine Möglichkeit, wenn ich in einem Fenster 2 Webgadgets habe, dass wenn ich im einen einen Link anklicke, dass dieser Link nicht im IE, sondern in dem zweiten Webgadget geöffnet wird ????
Ich beschäftige mich derzeit sehr viel mit den Webgadgets (Habe das sehr lange vernachlässigt) und versuche gerade eine Art kleiner Browser mit Tab-System zu programmieren ...
Verfasst: 04.08.2007 00:33
von edel
Code: Alles auswählen
Procedure NavigationCallback(Gadget, Url$)
Static start
If Not start ; ersten aufruf durchlassen
start = 1
Else ; jeden weiteren aufruf an das 2 Webgaget leiten
SetGadgetText(1,Url$)
ProcedureReturn #False
EndIf
ProcedureReturn #True
EndProcedure
hWnd = OpenWindow(0,#PB_Ignore,#PB_Ignore,640,480,"leer",#WS_OVERLAPPEDWINDOW)
CreateGadgetList(hWnd)
WebGadget(0,0,0,640,230,"google.de")
WebGadget(1,0,235,640,480,"")
SetGadgetAttribute(0,#PB_Web_NavigationCallback,@NavigationCallback())
Repeat
event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow
Verfasst: 04.08.2007 02:34
von DerProgrammierer78
Danke ... Das funktioniert super ....
Nur habe ich ein Problem damit ...
Der öffnet generell JEDE Seite im 2. Webgadget ...
Ich muss mich entschuldigen, dass ich meine Frage nicht präzise genug gestellt habe ...
Es geht um folgendes Problem ...
Ich habe zwei Webgadgets (fürs erste...) und in vielen Fällen wie hier z.B. bei deinem Beispiel wird ja vieles im gleichen Webgadget gemacht. Aber wenn ich nun auf eine Seite komme, die die nächste Seite in einem neuen Fenster öffnet. Dann startet der mir den IE und öffnet diese da. Wie mache ich es, dass er mir nur die abfängt und im nächsten Webgadget öffnet, die in einem neuen Fenster geöffnet werden ?
Sorry nochmal, dass meine Fragestellung so unpräzise war und danke für deine Hilfe ...
Verfasst: 04.08.2007 02:44
von DerProgrammierer78
Ich habe nun im Internet mal nach dem Befehl #PB_Web_NavigationCallback gesucht, den du benutzt hast, und eine Seite gefunden mit vielen Befehlen.
Code: Alles auswählen
Callback format:
Procedure ScintillaCallBack(EditorWindow.l, EditorGadget.l, *scinotify.SCNotification, lParam.l)
EndProcedure
- added: Lots of new Stuff for the WebGadget
SetGadgetItemText(#Web, #PB_Web_HtmlCode, Code$) - stream new code into the gadget
GetGadgetItemText(#Web, #PB_Web_HtmlCode) - get all code inside the gadget
GetGadgetItemText(#Web, #PB_Web_PageTitle) - get title string for the currently displayed page
GetGadgetItemText(#Web, #PB_Web_StatusMessage) - get the current message for the browser statusbar
GetGadgetItemText(#Web, #PB_Web_SelectedText) - get all currently selected text
New EventType() values for the WebGadget
#PB_EventType_TitleChange ; page title changed
#PB_EventType_StatusChange ; statusbar message changed
#PB_EventType_PopupWindow ; a popup was blocked (only if popups are blocked)
#PB_EventType_DownloadStart ; loading a page started
#PB_EventType_DownloadProgress ; loading progress changed (see Progress, ProgressMax below)
#PB_EventType_DownloadEnd ; loading finished (or aborted)
#PB_EventType_PopupMenu ; the popup menu is requested (only if the IE menu is blocked)
For Get/SetGadgetAttribute():
#PB_Web_BlockPopups ; block popup windows
#PB_Web_BlockPopupMenu ; block IE menu (the above event is fired to allow a custom menu)
#PB_Web_NavigationCallback ; set a callback to trace (and prevent) navigation (See example)
#PB_Web_Progress ; at a DownloadProgress event, get the downloaded data (readonly) may be 0 if unknown
#PB_Web_ProgressMax ; at a DownloadProgress event, get the total size (readonly) may be 0 if unknown
#PB_Web_Busy ; check if the Gadget is busy loading/rendering (readonly)
#PB_Web_ScrollX ; get/set the X scroll position
#PB_Web_ScrollY ; get/set the Y scroll position
Mal schaun was ich damit anfangen kann ...
Evtl. kann ich mein Problem ja damit lösen ..

Verfasst: 04.08.2007 03:12
von PureLust
DerProgrammierer78 hat geschrieben:Ich habe nun im Internet mal nach dem Befehl #PB_Web_NavigationCallback gesucht, den du benutzt hast, und eine Seite gefunden mit vielen Befehlen.
... [schnipp] ...
Mal schaun was ich damit anfangen kann ...
Evtl. kann ich mein Problem ja damit lösen ..

Naja ... Du hättest ja vielleicht auch einfach nur mal in die aktuelle Hilfe zur 4.10-Beta2 unter "WebGadget" nachzuschauen brauchen - da steht das nämlich alles drin.
Wie auch immer - ich habe gerade mal versucht Dir dazu was zu machen.
Habe dann aber festgestellt, dass der Navigation_Callback gar keinen Callback bekommt, wenn man einen Link anklickt der in einem neuen Fenster geöffnet werden soll (also entweder über Angabe von "target=" im Link oder eben durch "Rechtsklick->In neuem Fenster öffnen").
Somit kann man solche Links also (momentan?) garnicht abfangen bzw. in ein bestimmtes WebGadget umleiten.
Bei solchen Links wird also (momentan) in jedem Fall ein neues IE-Fenster geöffnet.
Verfasst: 04.08.2007 04:09
von edel
DerProgrammierer78 hat geschrieben:Danke ... Das funktioniert super ....
Nur habe ich ein Problem damit ...
Der öffnet generell JEDE Seite im 2. Webgadget ...
.
Ich muss mich entschuldigen, dass ich meine Frage nicht präzise genug gestellt habe ...
[...]
Mein Beispiel sollte dir auch nur eine Denkanstoss geben,
und dir zeigen wie man eine Seite im 2. Fenster anzeigen
lassen koennte. Programmieren musst du schon selber.
@PureLust
Das geht, aber wohl nur ueber das Interface. Z.B. Link Attribute
auslesen und entsprechend reagieren. Freak hat dazu sicherlich
schon einmal hier oder im englischem Forum etwas gepostet.
Verfasst: 04.08.2007 04:33
von PureLust
edel hat geschrieben:@PureLust
Das geht, aber wohl nur ueber das Interface. Z.B. Link Attribute auslesen und entsprechend reagieren.
Ich weiss jetzt nicht genau ob Du das gleiche meinst, aber ich habe halt versucht in dem CallBack den zur URL gehörenden Link im HTML-Quellcode zu finden und abzufragen ob dort "target=" drin vorkommt.
Aber wie gesagt, in einem solchen Fall kommt erst garkein Callback - ging also auf diese Weise nicht.
edel hat geschrieben:Freak hat dazu sicherlich schon einmal hier oder im englischem Forum etwas gepostet.
Ich habe schon des öfteren gelesen dass er wohl schon recht viele tolle Beispiele zum WebGadget veröffentlicht hat und darin (wie auch in so vielen anderen Dingen) ein echter Meister ist.
Alles von ihm dazu gefunden (geschweige denn verstanden) habe ich aber mit Sicherheit noch nicht.
Da ich mich aber momentan mit dem Einloggen in bzw. Abrufen und Auswerten von Webseiten beschäftigen muss, versuche ich gerade mich da tiefer rein zu arbeiten.
Ich hoffe mal, dass meine Versuche von Erfolg gekrönt werden.

Verfasst: 18.10.2007 12:45
von Bisonte
Die Konstante : #PB_Web_NavigationCallback gibts in der 4.02 nicht...
ganz zu schweigen von der 3.30
Wie geht das dann in der "NichtBeta" von PB ?
Geschweige denn das das Webgadget ein SetGadgetAttribut() unterstützt...
Habe auch grad das problem,das immer der IE geöffnet wird, soll aber lieber
mein Webgadget für herhalten
Anders ausgedrückt :
Wie fange ich die Links ab, die ein neues Fenster öffnen, bzw. wie veranlasse
ich das Webgadget dazu alle Links nur in diesem einen Webgadget zu öffnen ?