質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

3965閲覧

google calendarのCSS調整

satoty0307

総合スコア12

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2017/07/13 20:30

私がしたい事はgoogle calendarをwebサイトに埋め込み、その中の要素にCSSを当てる事です。
そこで考えたのはその中の文字列を置換したいと考えています。

それをしたい理由はスマホでカレンダーを閲覧し、表示された予定をクリックした際に表示される吹き出しが width="400px"という指定があるために画面からはみ出してしまうのを防ぐためです。

下記該当箇所

<div style="display: none; z-index: 1001; width: 400px;" class="bubble">

まず、素人考えで、jqueryのreplaceを使って実現出来ないかと思っています。が上手く行きません。
私が試したコードは下記の通りです。

$(function(){ setTimeout(function(){ $('#calendarContainer1').each(function(){ var txt = $(this).html(); $(this).html(txt.replace(/width: 400px;/g,'width: 80%;')); }); },1000); });

settimeoutでカレンダーが読み込まれたであろう時間の後に発火というイメージです。
(ベストはカレンダーの読込みをトリガーとしてreplaceが出来れば、、とも思っていますが私には難し過ぎて断念。)

カレンダー以外の部分では置換が動作しているのでコード自体は問題無いのかな、、、とは思っているのですが、カレンダー内の部分では置換が行われていません。
そもそもiframeの中は置換が出来ないのしょうか、、

加えて、上記とは別で、iframeの中にcssを効かせる方法も調べて試しました

$("iframe").on("load",function(){ $("iframe").contents().find('.bubble').css("width","80%"); });

失敗です。原因は恐らくクロスドメインなのでダメ。

jqueryの知識ほとんど無く、検討外れな質問かもしれませんがどうぞ、お力添えお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

そもそもiframeの中は置換が出来ないのしょうか

ご自身で書かれているとおりサーバ側からの許可がない場合不可能です。
Googleカレンダーから情報を取得できるAPIがあるので、それを利用する方法でカレンダーを自作してしまえばスタイルの問題は解決できると思います。

【Get Started with the Calendar API  |  Google Calendar API  |  Google Developers】
https://developers.google.com/google-apps/calendar/overview?hl=ja

たとえば下記は「吹き出し」の実装は自前でする必要がありますが、Googleカレンダーとの連携が出来る(噴出しの中身は自分で取る必要があるかも)ライブラリです。

【FullCalendar - JavaScript Event Calendar】
https://fullcalendar.io/

【Google Calendar - Documentation | FullCalendar】
https://fullcalendar.io/docs/google_calendar/

【fullCalendar.jsを使ったときのメモ(タイトルにHTMLタグを使う、ツールチップの表示) | niwaringo() {Tumblr}】
http://niwaringo.tumblr.com/post/20402748043/fullcalendarjsを使ったときのメモタイトルにhtmlタグを使うツールチップの表示

投稿2017/07/14 01:50

kei344

総合スコア69400

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

satoty0307

2017/07/14 03:22

ありがとうございます。 APIを試してみたいと思います。
guest

0

フロントエンドはからっきしダメなんですが、
google calendar embed style
でぐぐったら
Responsive Google Calendar Embed
というのを見つけました。
これでいろいろと試せそうな気がしますが、いかがでしょうか。

投稿2017/07/13 23:45

hotta

総合スコア1613

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

satoty0307

2017/07/14 01:40

回答ありがとうございます。 hottaさんに回答頂いた内容ですと、カレンダー全体の幅の調整でして、私が意図している物とは少し違う内容でございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問