Tips

サイトに埋め込んだGoogleカレンダーをCSSやJavaScriptで好き放題する方法について

  • このエントリーをはてなブックマークに追加

GoogleカレンダーはWEBサイトに埋め込んで表示することが出来るのですが、いかにもGoogleといった見た目のウィジェットが埋め込まれるためサイトに馴染まない場合が多いです。埋め込み用のコードはカスタマイズが可能とはいえ、変更できるのは背景色だけなので多くの場合何の解決にもなりません。
この記事ではCSSとJavaScriptでGoogleカレンダーの見た目を変更する手順について記載します。最終的には上記画像のようなレベルでカスタマイズができます。

iframeのすり替えとCSSの差し込み

Googleカレンダーの埋め込み用コードはiframeを使用しています。この場合iframe内はGoogleのドメインなのでクロスドメインに該当し、iframe内から自サイトのドメインに存在するファイル(cssやjs)を参照することができません。
解決方法として、iframeで直接表示するのではなくPHPでGoogleカレンダーのソースを取得してheadにCSSファイルへのリンクを差し込み、それをiframe内で表示するようにします。
……そういう内容の記事がstackoverflowに投稿されているのでコードは下記リンクを参照してください。

これで基本的に問題ないのですが元々Googleのドメインで動作するはずだったカレンダーの生成コードが自サイトのドメインで動作するため、想定していないリンクが生成されます。具体的には「マイ カレンダーにコピー」のリンクが「https://自サイトのドメイン/calendar/event?action=~」になったりします。
なのでウェブサーバーでリダイレクションしてあげます。

JavaScriptの差し込み

JavaScriptもCSSと同様にヘッダを書き換える形で差し込んでいきます。ただ、Googleカレンダー本体はiframe内でJavaScriptにより動的に読み込まれるため、カレンダーの読み込み後にJavaScriptが動作するようします。

細々した事

予定リストの表示方法

埋め込み用のコードではデフォルトの表示形式を指定でき、カレンダー以外にも予定リストを表示することができます(URIにmode=AGENDAというクエリが付与される)。しかし前述したPHPによるfile_get_contents()だと予定リストが表示されず、Googleのログイン画面が表示されます。
そのため、デフォルトの表示形式として予定リストを指定する場合、カレンダーの読み込み後にカレンダーのヘッダ部にある予定リストのタブに設定されているイベントを発火させます。

他手法について

他にも色々なカスタマイズ法があるので一応調べたものについて所感を書きます。

gcalendar-wrapper.php

ググると真っ先に出てくると思いますが2018年5月現在、配布サイトのリンクが切れているような……あとカスタマイズできる箇所があまりないのかなという印象です。

FullCalendar

ググるのが足りなくて後から知りました。めちゃくちゃ高性能みたいなので本格的に触るのであればコレでいいのかもしれないですね。APIからのアクセスなので今回紹介した手法みたいに下品ではないです。

最後に

想定されていないGoogleカレンダーの使い方だと思うのでご利用は各自の責任でお願いします。

  • このエントリーをはてなブックマークに追加
avatar
34 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
29 Comment authors
DonaldBoopeFbsgOrgapcialis doktor onlineJbnvSealpAbcfsmallless Recent comment authors
newest oldest
KhedPact
Guest
KhedPact

viagra sales online australia paypal buy viagra walgreen viagra cost per pill

KhedPact
Guest
KhedPact

buy viagra germany viagra no prescription fast shipping buy cheap viagra on line

FwsxGlype
Guest
FwsxGlype

best canadian online pharmacy indian pharmacy online the peoples pharmacy

JlloSealp
Guest
JlloSealp

canadian drug pharmacy ed medication best drugstore lipstick

AqwsGlype
Guest
AqwsGlype

the peoples pharmacy 24 hour pharmacy best drugstore eyeshadow

KhthPact
Guest
KhthPact

best canadian pharmacy canadian mail order pharmacy pharmacy near me

NllpOrgap
Guest
NllpOrgap

best drugstore bb cream nearest drug store erectile dysfunction pills

LokuGlype
Guest
LokuGlype

medicine for erectile rx express pharmacy mail order pharmacy

FgvdOrgap
Guest
FgvdOrgap

pharmacy best drugstore concealer canada pharmacy online

JtmfGlype
Guest
JtmfGlype

online canadian pharmacy ed pills online canadian pharmacy cialis

trackback

Google

Check beneath, are some entirely unrelated websites to ours, having said that, they’re most trustworthy sources that we use.

LbsxGlype
Guest
LbsxGlype

canadian drugs online pharmacies alternatives to viagra canadian pharmacy cialis

JbbvGlype
Guest
JbbvGlype

canadian mail order pharmacies online pharmacies canada cheap canadian drugs

AhkdGlype
Guest
AhkdGlype

pharmacy on line pharmacy canada prescription drugs without doctor approval

NncsOrgap
Guest
NncsOrgap

brand viagra pharmacy viagra in knoxville tn how much is viagra per pill

KbcxPact
Guest
KbcxPact

prescription prices comparison buy viagra pharmacy 100mg pharmacy online drugstore

FqhhGlype
Guest
FqhhGlype

allergy pharmacy cost comparison canada online pharmacy

JbnbSealp
Guest
JbnbSealp

online drugstore prescription drug assistance legitimate canadian mail order pharmacies

Aqcfsmallless
Guest
Aqcfsmallless

online pharmacy cialis cheap viagra cialis combo cialis daily price

FvfcOrgap
Guest
FvfcOrgap

generic viagra suppliers sydney viagra dapoxetine and viagra

cialis legs hurt
Guest
cialis legs hurt

best prices for cialis cialis 5 mg prontuario

cialis ucinok
Guest
cialis ucinok

cialis 100mg dosage formule chimique cialis

LabxGlype
Guest
LabxGlype

cialis for a 35 year old achat cialis sur internet combien de temps avant faut il prendre le cialis

Kuikscure
Guest
Kuikscure

viagra online without a prescription best price viagra 100mg buying viagra in ebay

online pharmacy cialis
Guest
online pharmacy cialis

cheap cialis in canada costo cialis ecuador

AhbzGlype
Guest
AhbzGlype

i need a payday loan with no checking account payday loan gresham or cash n advance poway

JbbnGlype
Guest
JbbnGlype

cialis dosage for recreational use cialis vs viagra best acheter cialis en toute securitГ©

KvaxPact
Guest
KvaxPact

payday loan missoula illinois payday loan consolidation moneysupermarket loan

FqbbGlype
Guest
FqbbGlype

payday help loan hawaii payday loans online quick cash online payday loans

Abcfsmallless
Guest
Abcfsmallless

viagra brand online sensitivity does generic viagra work viagra 150 mg

JbnvSealp
Guest
JbnvSealp

cash advance places in roanoke va payday loan finders cash loans carrollton ga

cialis doktor online
Guest
cialis doktor online

cialis in spain equivalent cialis homeopathie

FbsgOrgap
Guest
FbsgOrgap

cialis 20mg pills paypal cialis online cialis pay with paypal

DonaldBoope
Guest
DonaldBoope

Very nice quality article

free robux