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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

3回答

950閲覧

JavaScript 埋め込んだyoutubeの動画のサイズをユーザーが変更できるようにしたい

ryo2003

総合スコア15

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/01/09 11:33

前提・実現したいこと

ユーザーがフォームに入力したサイズに埋め込んでるyoutubeの動画が変更できるようにしたい。
![イメージ説明

該当のソースコード

HTML

1<form name="playersize"> 2 size of the player:width = <input name="sw" type="text" size="10" id="width"> / height = <input name="sh" type="text" size="10" id="height"> (default is 640*360) 3 <input type="button" value="change size" onclick="onChangeSizeButtonClick();"> 4 </form>

JavaScript

1 var player_width = '640' 2 var player_height = '360' 3 4 function onYouTubeIframeAPIReady() { 5 player = new YT.Player('player', { 6 height: player_height, 7 width: player_width, 8 videoId: 'UFQEttrn6CQ', 9 'origin': location.protocol + '//' + location.hostname + "/" 10 11 }); 12 } 13 14 function onChangeSizeButtonClick() { 15 player_width = document.getElementById("width").value; 16 player_height = document.getElementById("height").value; 17 } 18

問題

この状態だとchange sizeボタンを押しても何の変化もおきません。
どうすればサイズが変わるようになるでしょうか。
もし不可能であれば諦めます。

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

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

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

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

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

guest

回答3

0

原因は他の方々が書いておられるように、change sizeボタンを押したあとにinput要素の中身を取得するだけになってしまっており、それを#player要素に設定できていないためです。(ちなみにリサイズのみでしたらnewする必要はないです)


参考までにこんなやり方もあります。
https://cdpn.io/mattari-panda/debug/ExgpegL

枠の右下のツマミでサイズを変更出来ます。
JSを一行も書かずに、親要素にCSSのresize:both;を設定して#playerの縦横は100%になっています。

コードはこんな感じです。
※CodepenのEdit画面ではなぜかYoutubeの埋め込みが表示されない場合があるので、動作は上のURLで確認して下さい。
https://codepen.io/mattari-panda/pen/ExgpegL

投稿2021/01/09 13:07

編集2021/01/09 13:19
mattari_panda

総合スコア429

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

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

ryo2003

2021/01/09 23:05

ありがとうございます!JavaScriptの知識が全くなかったため助かりました。
guest

0

ベストアンサー

かなり雑ですが

size of the player:width = <input type="text" size="10" value="1000" id="sw"> / height = <input type="text" size="10" value="800" id="sh"> (default is 640*360) <input type="button" value="change size" onclick="onChangeSizeButtonClick();"> <div id="sample" style="width:640px;height:360px"></div>
<script> var tag = document.createElement('script'); tag.src = "https://www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); var ytPlayer; var sw=sample.style.width; var sh=sample.style.height; function onYouTubeIframeAPIReady() { ytPlayer = new YT.Player( 'sample', { width: sw, height: sh, videoId: 'M7lc1UVf-VE', } ); } function onChangeSizeButtonClick() { player_width = document.getElementById("sw").value; player_height = document.getElementById("sh").value; sample.style.width=''+player_width+''; sample.style.height=''+player_height+''; } </script>

投稿2021/01/09 12:01

arta

総合スコア20

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

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

ryo2003

2021/01/09 23:06

ありがとうございます!変わるようになりました
guest

0

変数に入れてるだけでは何もしません。変数に入れただけです。
Playerをnewしたときにしかサイズが指定できないのでしたら、Playerをそのサイズでnewしなおす必要があります。

投稿2021/01/09 11:37

m.ts10806

総合スコア80875

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問