0

ウェブページに Google カレンダーを埋め込んでおり、サイトが組織している活動に関連するイベントがあります。一部のカレンダー イベントには、同じ Web サイト内のページにユーザーをリダイレクトするリンクがあります。このページには、詳細情報とイベントに登録するためのオプションがあります。

しかし問題は、先月末から Google が自動的にリダイレクトしないリダイレクト通知を課したことです。イベントで作成したリンクは Google によって変更されます。ユーザーがリンクをクリックすると、新しいタブが開き、ユーザーがクリックする必要があるリダイレクトの警告が表示されたページが表示されます。同じ Web サイト内へのリンクをユーザーに提供しているので、これは非常に不便で、まったく意味がありません。

ユーザーがカレンダーのリンクをクリックして、関連データを含む Web ページに移動できるようにしたいと考えています。

この警告を回避する方法を知っていますか?

私の思考プロセス:

  1. 当初、JS を使用してリンクを書き換えることを考えていましたが、カレンダーの iframe が別のドメインにあるため、XSS エクスプロイト (AFAIK) のためにブラウザーが許可しません。

  2. 独自の AJAX カレンダーを作成し、API を使用して Google のカレンダーと同期することはできましたが、意味のない愚かな「機能」のために、それは大変な作業です。グーグルのカレンダーが好きで使いたいです。

  3. 私が考えた 3 番目のことは、カレンダーに iframe を使用する代わりに、AJAX を使用してフレームの URL のコード全体を取得できるということでした。次に、そのコードのリンクを JS で書き直します。これは機能しますか?

どんな助けにも本当に感謝しています。これは私を狂わせています!


Jon Cram の入力を使用して、コードを解析して調整を行う php スクリプトを作成しました。ただし、htmlバージョンでしか機能しませんでした。私にはAJAXはありません。=(

4

3 に答える 3

2

同一生成元ポリシーは、ドメインから提供されたJavaScriptが別のドメインから提供されたデータと相互作用することを防ぎます。

したがって、オプション1は機能しないと言っているのは正しいことです。

同一生成元ポリシーは、あなたが述べたようにオプション3にも適用されます。ドメインから提供されたJavaScriptは、カレンダーコードを提供するドメインに直接HTTPリクエストを送信することはできません。

カレンダーコードを取得して変更する必要がありますが、どちらも今日最も一般的に使用されているブラウザを使用したJavaScriptでは実現できません。FireFox 3.1とIE8が一般的に使用されており、 Googleが正しいHTTPアクセス制御ヘッダーを提供している場合、これはJavaScriptのみで実現できます。

別のドメインから提供されるコードを変更するには、何らかの形式のサーバー側プロセスを利用する必要があります。

サーバーサイドスクリプトは、カレンダーコードを要求できるようになります。同じスクリプトで、必要に応じてコードを変更し、必要な形式で出力できます。

于 2009-02-12T15:02:01.120 に答える
0

プライベートな内部サイトの場合、すべてのクライアント (Firefox を使用している場合) にグリースモンキーをインストールし、URL を修正する短いスクリプトを作成できます。ただし、元の URL が Google の redirecturl に含まれている場合にのみ機能します。

この問題が発生した場合は、カレンダー プロバイダーを変更しました。これがおそらく最も簡単な解決策です。Google 検索を行ったところ、Kikoが見つかりました。必要なものがあるようです。

于 2009-02-12T17:29:05.430 に答える
0

URL の「http://」の部分を削除するだけです。なぜこれが機能するのかわかりませんが、機能します!

于 2009-02-26T03:16:25.107 に答える