2010-10-22 39 views
1

J'écris une application, qui devient "utile" lorsque l'utilisateur parcourt une certaine URL.Comment puis-je détecter lorsque l'utilisateur navigue sur certaines URL?

Je veux ajouter une fonctionnalité à mon application, qu'elle sera automatiquement lancée une fois que l'utilisateur navigue sur cette URL, je pensais écrire un chien de garde pour le déclencher.

Ma question est, s'il y a un moyen générique d'être notifié lorsque l'utilisateur navigue sur URL, je veux soutenir au moins IE et FireFox, chrome et safari est agréable à avoir. Je lis à propos de DDE et WWW_RegisterURLEcho, mais d'après ce que je comprends, il n'est pas supporté par FireFox, et aussi un petit échantillon que j'ai écrit ne fonctionnait pas aussi bien avec IE.

Nous vous remercions à l'avance

quelques questions **

Do Url sobriquets et de Asynchronous Protocoles Pluggable me aider? Est-il pris en charge par FireFox?

Répondre

1

Si vous avez le contrôle du site Web, vous pouvez lui demander d'écrire un cookie sur l'ordinateur. Ensuite, ayez votre moniteur d'application pour ce cookie.

+0

Il n'y a pas de moyen multi-navigateur pour surveiller un cookie. – SLaks

+0

Il existe sûrement des moyens de regarder plusieurs dossiers. Votre application doit être configurée pour surveiller les dossiers de cookies IE, FF, Safari, Chrome, etc. – Brad

+0

Merci Brad, mais j'espère trouver un meilleur moyen. Aussi, demain je pourrais vouloir "regarder" pour le site que je ne contrôle pas comme ebay.com. Donc, je préfère trouver un moyen, où je suis averti à quel utilisateur d'URL est navigué. –

0

Vous pouvez implémenter ceci de plusieurs façons et à plusieurs niveaux différents. Au plus haut niveau, vous pouvez implémenter un plugin de navigateur. Il n'y a pas de solution multi-navigateur à cette couche qui vous permettra d'écrire le code une fois et de travailler pour chaque navigateur. Sur la partie facile du spectre, Firefox, vous pouvez l'implémenter entièrement comme un plugin Javascript + XUL et utiliser les interfaces XPCom intégrées (nsIProcess) pour lancer votre processus d'assistance. Pour IE, vous devez écrire un COM, C++ et win32 BHO qui gère DWebBrowserEvents2::BeforeNavigate2. C'est la chose la plus difficile à faire. Il existe des mécanismes pour Safari, Chrome et d'autres navigateurs Web que vous pouvez utiliser pour atteindre ce même comportement, avec différents degrés de difficulté. Au niveau suivant, vous pouvez implémenter un proxy HTTP, similaire à Fiddler2, qui redirige d'abord tout le trafic HTTP via votre proxy local. Chaque navigateur a une manière différente de configurer ses paramètres de proxy, mais ce sont tous essentiellement des paramètres de registre ou des fichiers de configuration. Au niveau le plus élémentaire, vous pouvez simplement ignorer tout le trafic IP sortant de la machine, de la même manière que Wireshark, et rechercher les requêtes http dans votre URL. Cela est probablement plus difficile à coder, mais cela fonctionnerait pour tous les navigateurs sans aucune configuration spéciale par navigateur. Vous devrez peut-être écrire un pilote. Je ne sais pas, je n'ai jamais travaillé à ce niveau dans la pile.