Je veux y parvenir lorsqu'un utilisateur clique sur un lien hypertexte dans une page de navigateur TChromium, la nouvelle page s'ouvre dans son navigateur par défaut.Comment faire un clic sur un lien du navigateur Chrome ouvert dans le navigateur par défaut?
Répondre
Dans le contrôle des événements OnBeforeBrowse
si le paramètre est égal à navType
NAVTYPE_LINKCLICKED
et si oui, vrai retour au paramètre Result
(qui annulera la demande de chrome) et appellent par exemple ShellExecute
passer la valeur request.Url
pour ouvrir le lien dans le navigateur par défaut de l'utilisateur:
uses
ShellAPI, ceflib;
procedure TForm1.Chromium1BeforeBrowse(Sender: TObject;
const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest;
navType: TCefHandlerNavtype; isRedirect: boolean; out Result: Boolean);
begin
if navType = NAVTYPE_LINKCLICKED then
begin
Result := True;
ShellExecuteW(0, nil, PWideChar(request.Url), nil, nil, SW_SHOWNORMAL);
end;
end;
mabybe ajouter un "else Résultat: = False" ? – Domus
Mieux pourrait être 'Result: = False' au début de la méthode, mais ce n'est pas nécessaire puisque False est le [' result initial'] (https://code.google.com/p/delphichromiumembedded/source/browse/ trunk/src/cefvcl.pas # 644). – TLama
Vous avez bien sûr raison, mais un paramètre Nilled est plus une situation implicite, avec Delphi. :) – Domus
En CeF3, navType = NAVTYPE_LINKCLICKED
n'est plus possible en cas OnBeforeBrowse
, comme dans la réponse de TLama. Au lieu de cela, j'ai découvert comment détecter cette propriété en utilisant la TransitionType
...
procedure TfrmEditor.BrowserBeforeBrowse(Sender: TObject;
const browser: ICefBrowser; const frame: ICefFrame;
const request: ICefRequest; isRedirect: Boolean; out Result: Boolean);
begin
case Request.TransitionType of
TT_LINK: begin
// User clicked on link, launch URL...
ShellExecuteW(0, nil, PWideChar(Request.Url), nil, nil, SW_SHOWNORMAL);
Result:= True;
end;
TT_EXPLICIT: begin
// Source is some other "explicit" navigation action such as creating a new
// browser or using the LoadURL function. This is also the default value
// for navigations where the actual type is unknown. Do nothing.
end;
end;
end;
- 1. Faire un lien depuis Electron ouvert dans le navigateur
- 2. URL ouvert dans le navigateur par défaut
- 3. Navigateur IE ouvert dans Firefox/Chrome page
- 4. Internet Explorer Accelerator - Navigateur par défaut ouvert
- 5. xdg-open non ouvert navigateur par défaut
- 6. Rendre gulp.js ouvert navigateur par défaut
- 7. MoSync: ouvrir un lien dans un navigateur web par défaut
- 8. node-webkit Clic droit sur un lien et ouverture dans le navigateur par défaut
- 9. Faire un navigateur tiers par défaut
- 10. Ouvrir URL/lien dans Email dans Chrome, au lieu du navigateur par défaut IE8
- 11. Faire un signet du navigateur mon lien?
- 12. Réglage du navigateur par défaut avec gulp ouvert et yargs
- 13. Expect navigateur de fichiers ouvert sur un clic de bouton
- 14. Répéteur de données, faire lien linklabel ouvert dans le navigateur?
- 15. C++ OS X navigateur par défaut ouvert
- 16. webbrowser iframes ouvert dans le navigateur par défaut
- 17. Ouverture du navigateur Web dans le navigateur par défaut
- 18. C# Webbrowser ouvert avec le navigateur par défaut
- 19. iOS - Comment ouvrir les liens dans le navigateur par défaut (Safari ou Chrome) au lieu du navigateur intégré à l'application?
- 20. Est-il possible lien hypertexte ouvert dans un navigateur non par défaut.
- 21. Lien non ouvert dans le navigateur Web
- 22. rendre vlc le lecteur par défaut sur le navigateur chrome
- 23. Lien WebView cliquez sur ouvrir le navigateur par défaut
- 24. Comment ouvrir les liens dans le navigateur par défaut à l'intérieur du navigateur InApp sur PhoneGap
- 25. Comment ouvrir un lien à partir du navigateur client intégré dans le navigateur par défaut de l'utilisateur?
- 26. perl - URL de lancement dans l'ouverture du navigateur dans le navigateur non par défaut
- 27. LinkLabel ... ouvert dans le navigateur Web par défaut?
- 28. comment faire pour supprimer la couleur par défaut du menu déroulant bleu dans le navigateur chrome
- 29. Java Nom du navigateur par défaut
- 30. page de détail sapui5 ouvert dans un nouvel onglet du navigateur sur un seul clic
Dans le contrôle des événements 'OnBeforeBrowse' si le' 'navType' est égal à NAVTYPE_LINKCLICKED' et si oui, vrai retour au paramètre' Result' (qui annulera la demande pour Chromium) et appellera par exemple 'ShellExecute' en passant le' request.Url'. – TLama
C'est génial. Pourquoi n'avez-vous pas posté cela comme réponse? Trop indigne pour toi? :) – Domus