2009-02-12 8 views
0

J'ai un calendrier Google intégré sur une page Web, avec des événements liés aux activités que le site organise. Certains événements d'agenda comportent des liens qui redirigent l'utilisateur vers une page, sur le même site Web, qui contient plus d'informations et la possibilité de s'inscrire à l'événement. Le problème, cependant, est que depuis la fin du mois dernier, Google a imposé un avis de redirection qui ne redirige même pas automatiquement. Les liens que je crée sur les événements sont modifiés par Google et, une fois qu'un utilisateur clique sur un lien, un nouvel onglet s'ouvre conduisant à une page avec un avertissement de redirection que l'utilisateur doit cliquer. Puisque je fournis aux utilisateurs un lien vers le même site Web, c'est très gênant et cela n'a aucun sens.Comment contourner la notification de redirection de liens de Google Agenda?

Je souhaite que les utilisateurs puissent cliquer sur un lien dans le calendrier et accéder à la page Web avec les données pertinentes. Est-ce que vous savez comment je peux contourner cet avertissement?

Mon processus de pensée:

  1. Dans un premier temps, je pensais d'utiliser JS pour réécrire les liens, mais depuis le iframe de calendrier est dans un domaine différent, le navigateur ne lui permettra pas en raison d'exploits XSS (AFAIK).

  2. Je pourrais construire mon propre calendrier AJAX et le synchroniser avec celui de Google en utilisant l'API, mais c'est beaucoup de boulot à cause d'une "fonctionnalité" stupide qui n'a aucun sens. J'aime le calendrier de Google et j'aimerais l'utiliser.

  3. La troisième chose que je pensais était que, au lieu d'avoir un iframe avec le calendrier, je pourrais utiliser AJAX pour récupérer le code entier sur l'URL du cadre. Ensuite, je voudrais juste réécrire les liens sur ce code avec JS. Cela pourrait-il fonctionner?

Je serais vraiment reconnaissant pour toute aide. Cela me rend fou! En utilisant l'entrée de Jon Cram, j'ai créé un script php qui analyse le code et effectue les ajustements. Cependant, je ne pouvais obtenir cela que pour la version html. Pas d'AJAX pour moi. = (

Répondre

2

La même politique d'origine empêchera JavaScript servi de votre domaine d'interagir avec les données servi d'un autre domaine.

Vous avez donc raison de dire que l'option 1 ne fonctionnera pas.

Le La même règle d'origine s'applique également à l'option 3. JavaScript utilisé à partir de votre domaine ne sera pas en mesure d'effectuer une requête HTTP directe sur le domaine desservant le code du calendrier, quel que soit le domaine desservi par le code du calendrier. code de calendrier, dont aucun ne peut être réalisé avec JavaScript en utilisant le plus commun d'aujourd'hui utilisé les navigateurs. Lorsque FireFox 3.1 et IE8 sont en usage commun et Google sert les en-têtes de contrôle d'accès HTTP correct cela pourrait être réalisé avec JavaScript seul.

Pour modifier le code provenant d'un autre domaine, vous devez utiliser une forme de processus côté serveur.

Un script côté serveur pourra demander le code de calendrier.Le même script peut ensuite modifier le code si nécessaire et le sortir sous la forme que vous souhaitez.

0

S'il s'agit d'un site interne privé, vous pouvez installer greasemonkey sur tous les clients (s'ils utilisent firefox) et créer un court script qui corrige les URL. Cela ne fonctionne que si l'URL d'origine est contenue dans redirecturl google cependant.

Si j'ai eu ce problème que je blesse changer le fournisseur de calendrier, c'est probablement la solution la plus simple. J'ai fait une recherche google et trouvé Kiko, on dirait qu'ils pourraient avoir ce dont vous avez besoin?

0

Supprimez simplement la partie "http: //" de l'URL. Je ne sais pas pourquoi cela fonctionne mais ça le fait!