| |
|
|
 Julian Schmidt | Wie kann man bei einem HTML-Win Dialog verhindern das sich ein Link[href_blank, bubble] in einem neuen Fenster öffnet [...] ?
iF (22.05.11)
Bisl was fällt mir da schon ein...
a) neue Fenster bei Links vlt. verhinden - hierzu (per ocx?) <base href auf _self setzen;
b) ein url-Protokoll mit der Anwendung registrieren und Links umschreiben von https:// auf irgendHttp://;
c) per ocx & js eine nproc injizieren und Links in js konvertieren.
Vlt. wäre Variante B ganz einfach aber ich kann mir auch vorstellen das es eigentlich noch einfacher gehen könnte. ^^
Wer kann eine Variante realisieren? |
|
|
| ˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗ Webseite [...]  | 22.05.2011 ▲ |
|
|
|
|
 |
nur href_blank
Ich glaube das stimmt so nicht ganz denn statt _blank kann auch ein Fenstername angegeben werden und wenn das Fenster nicht existiert wird eins mit dem Namen geöffnet. So erzeugt sich imho auch dann ein neues Fenster wenn Du "bubble" angibst.
Wer kann eine Variante realisieren?
Variante B bekommst Du selbst einfach hin - ist imho nur Registry-Geschreibe... hatte ich irgendwann mal bei XP-Script ( [...] ) so gemacht aber den Code hier nicht parat. |
|
|
| |
|
|
|
 Julian Schmidt |
Vlt. wäre Variante B ganz einfach aber ich kann mir auch vorstellen das es eigentlich noch einfacher gehen könnte. ^^
Kennt jemand eine einfachere Lösung?  |
|
|
| ˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗ Webseite [...]  | 22.05.2011 ▲ |
|
|
|
|
 Uwe ''Pascal'' Niemeier | Hi Julian!
Kennt jemand eine einfachere Lösung?
Ich jedenfalls nicht, ganz im Gegenteil...
Die Varianten von iF haben nämlich einen Schönheitsfehler: Sie lassen sich relativ leicht auf ein Dokument anwenden, aber was, wenn eine Webseite Frames enthält? Dann wäre jeder Frame ein Dokument, das wiederum Frames und damit weitere Dokumente enthalten könnte. Diese müßten alle erfaßt und "nachgearbeitet" werden... Außerdem müßte diese Technik nach jeder Navigation angewendet werden, damit alle Links erfasst werden.
Eine andere Lösung wäre, das IWebBrowser-Interface selbst zu manipulieren. (Das ist das Ding, das hinter Profans HTMLWin-Control steht und damit über allem, was darin enthalten ist)
Habe sowas vor einiger Zeit mal probiert; dazu waren allerdings ein paar Tricksereien nötig. Aber zumindest unter XP/SP3 & IE8 funktioniert es. Vielleicht kannst du es ja irgendwie einbauen!
Und wie gesagt: Bei einzelnen Dokumenten (wie z.B. bei einer HTML-basierten Benutzeroberfäche für eigene Programme) geht es wesentlich einfacher.
SeeYou Pascal |
 |
|
| |
|
|
|
 Julian Schmidt | In XProfan 11 geht es nicht wegen des ProcAddr in
ProcAddr nicht in Free-Version enthalten
Kann man die Zeile irgendwie umschreiben [ohne ProcAddr]? |
|
|
| ˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗ Webseite [...]  | 23.05.2011 ▲ |
|
|
|
|
 | An der Stelle dieser ProcAddr-Funktion könntest Du myProc& hinterlegen -
hab Dir kleinen Opcode geschrieben der per SendMessage die Nachricht 1024+1234 an das hWnd sendet und das müsste dann in der SubClassProc ankommen wenn sich das Programm in der Funktion WaitInput befindet:
var myProc&=~globalAlloc(0,32)
long myProc&,0=26707,6815744,1744830464,0,104,47872,-738263040,50011
long myProc&,12=1024+1234
long myProc&,17=%hWnd
long myProc&,22=~GetProcAddress(~GetModuleHandleA("user32"),"SendMessageA")
/*
push ebx
push dword
push dword
push dword
push dword
mov ebx,dword
call ebx
pop ebx
ret0
*/
|
|
|
| |
|
|
|
 Julian Schmidt | was ist mit Zeile 53?
und 81?
|
|
|
| ˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗ Webseite [...]  | 23.05.2011 ▲ |
|
|
|
|
 | Um den Opcode für diese größere Funktionen hinzupinseln bräuchte ich dann wohl doch etwas mehr Zeit...
hole Dir einfach ein XProfan!  |
|
|
| |
|
|
|
 Dieter Zornow | Hallo Uwe,
bei deinem Browserbeispiel kommt es bei mir beim Programmende zu einem schweren Absturz, kann noch nicht mal mehr mit dem Taskmanager beenden. Win7 32bit |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 24.05.2011 ▲ |
|
|
|
|
 Uwe ''Pascal'' Niemeier | Hi Leute!
@ Julian: Hab ich inzwischen auch gemerkt Werde nachher doch mal versuchen, die Variante mit JavaScript umzusetzten. Das Umleiten von Events kommt ohne ProcAddr() nämlich definitiv nicht aus.
@ Dieter: Kann ich mangels Win 7 leider nicht nachvollziehen. Aber viel kommt da ja nicht in Frage... Vielleicht mal den Aufruf von DeInitDispatch() am Programmende auskommentieren? Hat bei mir anscheinend keine Nachteile. Ist aber auch ein Kreuz mit diesen Kompatiblitätsproblemen 
Nachtrag @ Dieter: Du verwendest doch Profan X2a ? Mit X2 ohne a könnte es in der Tat ein Problem geben.
SeeYou Pascal |
|
|
| |
|
|
|
 Uwe ''Pascal'' Niemeier | Hi Leute!
Werde nachher doch mal versuchen, die Variante mit JavaScript umzusetzten
Hat etwas gedauert... Und um es gleich vorwegzunehmen: Vernünftig arbeiten kann man damit nicht! Dazu ist das ganze einfach zu instabil - selbst für meine Verhältnisse . Es ist nur eine Frage der Zeit, bis es damit Fehlermeldungen und Abstürze gibt. Ich poste den Code eigentlich nur zu Demozwecken und weil sich die eine oder andere nützliche Funktion daraus ableiten läßt... Bei einem internetfähigen Browser gibt es einfach zu viel zu berücksichtigen, weil man ja keine Kontrolle darüber hat, was angezeigt wird und wie die Seiten aufgebaut sind.
Soviel dazu 
SeeYou Pascal |
|
|
| |
|
|
|
 AndreasS | Hallo Pascal Versuche mal die ARD-Mediathek. Ganz unten auf der Seite bekommt man Links auf andere Mediatheken angeboten. Du wirst feststellen, dass diese trotzdem in einem neuen Fenster geöfnet werden. Warum auch immer.
Bis dann Andreas |
|
|
| |
|
|