Pergunta

Eu tenho um calendário Google embutido em uma página web, com eventos relacionados às atividades do site está a organizar. Alguns eventos do calendário têm links que redirecionam o usuário para uma página, dentro mesmo site, que tem mais informação e a opção de se inscrever no evento.

O problema, porém, é que, desde o final do mês passado, o Google impõe um aviso de redirecionamento que não redireciona mesmo automaticamente. Os links que eu crio sobre eventos são alterados pelo Google e, uma vez que um usuário clica em um link, uma nova aba é aberta levando a uma página com um aviso de redirecionamento que o usuário deve clicar. Desde que eu estou fornecendo os usuários com um link para dentro do mesmo site isto é muito inconveniente e não faz nenhum sentido em tudo.

Eu quero que os usuários possam clicar em um link no calendário e passar para a página com os dados relevantes.

Vocês sabem como eu posso ir ao redor este aviso?

O meu pensamento processo:

  1. Inicialmente, pensei em usar JS para reescrever as ligações mas desde iframe do calendário é de um domínio diferente, o navegador não vai permitir isso devido ao XSS explora (AFAIK).

  2. Eu poderia construir o meu próprio calendário AJAX e sincronizá-lo com o do Google usando o API, mas isso é um inferno de um monte de trabalho por causa de "recurso" estúpido que não faz sentido. I como o calendário de Google e eu gostaria de usá-lo.

  3. A terceira coisa que eu pensava era que, em vez de ter um iframe com o calendário que eu poderia usar AJAX para buscar o código inteiro na url do quadro. Então eu tinha acabado de reescrever os links na esse código com JS. Poderia este trabalho?

Eu ficaria muito grato por qualquer ajuda. Isso está me deixando louco!


Usando a entrada de Jon Cram eu criei um script PHP que analisa o código e faz os ajustes. No entanto, eu só poderia começar esse trabalho para a versão html. No AJAX para mim. = (

Foi útil?

Solução

A política de mesma origem impedirá JavaScript servido do seu domínio de interagir com dados serviram de um domínio diferente.

Você está, portanto, razão ao dizer que a opção 1 não irá funcionar.

A política de mesma origem também se aplica a opção 3 como você disse ele. JavaScript servido do seu domínio não será capaz de fazer uma solicitação HTTP direta a qualquer domínio serve o código civil.

Você vai precisar adquirir e modificar o código calendário, nenhuma das quais pode ser conseguido com JavaScript usando navegadores mais usados ??de hoje. Quando o Firefox 3.1 e IE8 são de uso comum e Google serve o HTTP correta Access Control cabeçalhos isso poderia ser conseguido apenas com JavaScript.

Para modificar o código serviu de outro domínio, você vai precisar de utilizar alguma forma de processo do lado do servidor.

Um script do lado do servidor será capaz de solicitar o código civil. O mesmo script pode então modificar o código, conforme necessário e saída-lo em qualquer forma que você necessita.

Outras dicas

Se for um site interno privado você pode instalar greasemonkey em todos os clientes (se eles usam o Firefox) e fazer um pequeno script que corrige as urls. Isso só funciona se o URL original está contido dentro redirecturl do google embora.

Se eu tive esse problema acabei alterar o provedor de calendário, que é provavelmente a solução mais fácil. Eu fiz uma pesquisa no Google e encontrou Kiko , parece que eles podem ter o que você precisa?

Basta retirar o "http: //" parte da URL. Não tenho a certeza por que isso funciona, mas ele faz!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top