Как можно обойти уведомление о перенаправлении ссылки Календаря Google? - PullRequest
0 голосов
/ 12 февраля 2009

У меня есть встроенный в веб-страницу календарь Google с событиями, связанными с деятельностью сайта. Некоторые события календаря имеют ссылки, которые перенаправляют пользователя на страницу того же веб-сайта, на которой есть дополнительная информация и возможность зарегистрироваться в этом событии.

Проблема, однако, заключается в том, что с конца прошлого месяца Google ввел уведомление о перенаправлении, которое даже не перенаправляется автоматически. Ссылки, которые я создаю для событий, изменяются Google, и, как только пользователь нажимает на ссылку, открывается новая вкладка, ведущая на страницу с предупреждением о перенаправлении, которое пользователь должен щелкнуть. Поскольку я предоставляю пользователям ссылку на один и тот же веб-сайт, это очень неудобно и не имеет никакого смысла.

Я бы хотел, чтобы пользователи могли щелкать ссылку в календаре и переходить на веб-страницу с соответствующими данными.

Ребята, вы знаете, как я могу обойти это предупреждение?

Мой мыслительный процесс:

  1. Изначально я думал об использовании JS для перезаписи ссылок, но поскольку iframe календаря находится в другом домене, браузер не разрешит его из-за эксплойтов XSS (AFAIK).

  2. Я мог бы построить свой собственный календарь AJAX и синхронизировать его с Google, используя API, но это чертовски много работы из-за глупой «функции», которая не имеет смысла. Мне нравится календарь Google, и я хотел бы использовать его.

  3. Третье, что я подумал, это то, что вместо фрейма с календарем я мог бы использовать AJAX для получения всего кода в URL фрейма. Тогда я просто перепишу ссылки на этот код с помощью JS. Может ли это работать?

Я был бы ДЕЙСТВИТЕЛЬНО благодарен за любую помощь. Это сводит меня с ума!


Используя данные Джона Крэма, я создал php-скрипт, который анализирует код и вносит коррективы. Однако я мог получить это только для html-версии. Нет AJAX для меня. = (

Ответы [ 3 ]

2 голосов
/ 12 февраля 2009

Та же политика происхождения не позволит JavaScript, обслуживаемому с вашего домена, взаимодействовать с данными, полученными из другого домена.

Поэтому вы правы, говоря, что вариант 1 не будет работать.

Та же политика происхождения также применяется к варианту 3, как вы его указали. JavaScript, обслуживаемый с вашего домена, не сможет сделать прямой HTTP-запрос к тому, какой домен обслуживает код календаря.

Вам потребуется приобрести и изменить код календаря, чего нельзя достичь с помощью JavaScript с использованием наиболее распространенных в настоящее время браузеров. Когда FireFox 3.1 и IE8 широко используются и , Google предоставляет правильные заголовки контроля доступа HTTP, этого можно достичь только с помощью JavaScript.

Чтобы изменить код, обслуживаемый из другого домена, вам потребуется использовать некоторую форму процесса на стороне сервера.

Серверный скрипт сможет запрашивать код календаря. Затем тот же сценарий может изменить код по мере необходимости и вывести его в любой форме.

0 голосов
/ 26 февраля 2009

Просто удалите "http://" часть URL. Я не уверен, почему это работает, но это работает!

0 голосов
/ 12 февраля 2009

Если это частный внутренний сайт, вы можете установить greasemonkey на всех клиентах (если они используют firefox) и создать короткий скрипт, который исправит URL-адреса. Это работает только в том случае, если исходный URL-адрес содержится в Google Redirecturl.

Если бы у меня была эта проблема, я бы поменял провайдера календаря, это, наверное, самое простое решение. Я сделал поиск в Google и нашел Kiko , похоже, они могут иметь то, что вам нужно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...