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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

1165閲覧

別窓で開いたカレンダーとスケジュール日時欄との連動

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2019/03/26 07:56

先日、下記ページにてスケジュール機能のカレンダー切り替え実装に関してご回答をいただいたのですが、
追加で別窓のカレンダーと連動をさせる必要が出てきました。

※前回のページ
【サイドバーにスケジュール表示機能をつけたいと思っています。】
https://teratail.com/questions/180318

別窓で開いたカレンダーとスケジュール日時欄との連動

追加したい機能は
1)「当日」の右にあるカレンダーアイコンをクリックすると別窓で立ち上がるカレンダーの任意の日(例:2019年4月1日)をクリックすると、スケジュール日程の「25日<<3月26日>>27日」の部分が「31日<<4月1日>>2日」に切り替わる。

別窓のカレンダーに関しましては( http://kthornbloom.com/monthly/ )にある「monthly.js」を使用しています。

【ソース】
<html>

<index.html> <div class="contentBox"> <div class="heading flex"> <div class="schedule"><span class="prev"></span>&lt;&lt;<span class="current"></span>&gt;&gt;<span class="next"></span></div> <div class="today">当日</div> <div class="calendar"><a href="javascript:ImageUp();"></a></div> </div> <div class="text"> <div class="flex"><個人スケジュール></div> </div> </div> </div> <calendar.html> <div class="page"> <div style="width:100%; max-width:200px; display:inline-block;"> <div class="monthly" id="mycalendar"></div> </div> <div class="closeBtn"><a href="#" onClick="window.close(); return false;">閉じる</a></div> </div>

<css>

<index.html> .contentBox { border: 1px solid #f2f2f2; box-sizing: border-box; margin-bottom: 1em; } .contentBox a { color: #fff; } .contentBox a:hover { color: #ccc; } .heading { background: #86888a; color: #fff; font-weight: bold; padding: 10px; position: relative; } .schedule { box-sizing: border-box; float: left; padding-right: 5px; width: 80%; /* 3点リーダ */ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .today { min-width: 30px; width: 12%; } .calendar { background: url(../img/calendar.gif) no-repeat; background-size: 16px 16px; background-position: 0 0; padding-top: 3px; width: 16px; height: 16px; box-sizing: border-box; position: relative; } .calendar a { position: absolute; top: 0; left: 0; height: 16px; width: 16px; }

<js>

<index.html> // スケジュール function setSchedule(d){ var dd=[{},{},{}]; var text = d.setDate(d.getDate()-1); dd[0].text = text-text%(60*60*24*1000); text = d.setDate(d.getDate()+1); dd[1].text = text-text%(60*60*24*1000); text = d.setDate(d.getDate()+1); dd[2].text = text-text%(60*60*24*1000); dd[0].date = new Date(dd[0].text); dd[1].date = new Date(dd[1].text); dd[2].date = new Date(dd[2].text); dd[0].content= dd[0].date.getDate()+"日"; dd[1].content= (dd[1].date.getMonth()+1)+"月"+dd[1].date.getDate()+"日"; dd[2].content= dd[2].date.getDate()+"日"; with(document.querySelector('.schedule .prev')){ textContent = dd[0].content; dataset["date"] = dd[0].text; } with(document.querySelector('.schedule .current')){ textContent = dd[1].content; dataset["date"] = dd[1].text; } with(document.querySelector('.schedule .next')){ textContent = dd[2].content; dataset["date"] = dd[2].text; } } window.addEventListener('DOMContentLoaded', function(e){ setSchedule(new Date()); document.querySelector('.today').addEventListener('click',function(e){ var d=new Date(); setSchedule(d); }); document.querySelector('.schedule .prev').addEventListener('click',function(e){ var d=new Date(parseInt(e.target.dataset["date"])); setSchedule(d); }); document.querySelector('.schedule .next').addEventListener('click',function(e){ var d=new Date(parseInt(e.target.dataset["date"])); setSchedule(d); }); }); // イメージポップアップ表示 function ImageUp() { window.open("calendar.html","window1","width=250,height=340,scrollbars=0"); }

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

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

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

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

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

kei344

2019/03/26 07:59

「何」が「どのように」わからないのか、コードのどの部分で詰まっているのかなどを、出ているエラーなどと併せて、具体的に記述されたほうが回答を得られやすいと思います。
yambejp

2019/03/26 08:11

「別窓のカレンダーと連動をさせる」は、 ・input type="date”で代用 ・window.openではなく(疑似)モーダル処理で代用 ではなく、新しいwindowを開くのは必須ということでしょうか? いわゆる別窓は隠れちゃうこともありユーザビリティは低いですが・・・
退会済みユーザー

退会済みユーザー

2019/03/26 08:21

> yambejp さん 確かにその通りかもしれません。 スマホやタブレットでの閲覧も考慮すると別窓でない方がいいかもしれないですね。 モーダルであれば解決策はありそうでしょうか?、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問