44 行
1.5 KiB
HTML
44 行
1.5 KiB
HTML
<!--Version:1.3.0-->
|
|
<!DOCTYPE html>
|
|
<html lang="ja">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title id="mytitle">home</title>
|
|
</head>
|
|
<body>
|
|
<iframe id="myframe" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
|
|
<script>
|
|
var link = prompt("YouTubeのリンクを入力してください。\nちなみに、なんらかのなにかにより再生できない場合もあるっぽいです。");
|
|
var frame = document.getElementById("myframe");
|
|
var title = document.getElementById("mytitle");
|
|
|
|
// 正規表現パターンを更新して、YouTubeライブリンクと動画IDのみの場合も対応
|
|
var youtubePattern = /^(https?:\/\/)?(youtu\.be\/|(www\.)?youtube\.com\/(watch\?v=|shorts\/|live\/))?([\w-]+)(\S*)$/;
|
|
var match = link.match(youtubePattern);
|
|
|
|
if (match) {
|
|
// 入力がYouTubeのリンクの形式に合っている場合
|
|
var videoId = match[5];
|
|
var embed = "https://www.youtube.com/embed/" + videoId + "?rel=0&autoplay=1";
|
|
frame.src = embed;
|
|
} else {
|
|
// 入力がYouTubeのリンクの形式に合っていない場合
|
|
var result = confirm("不正なURLです。\nOKを押すとabout:blankへ遷移されます。\nキャンセルを押すと再度入力可能になります。");
|
|
if (result) {
|
|
window.location = "about:blank";
|
|
} else {
|
|
window.location.reload();
|
|
}
|
|
}
|
|
</script>
|
|
<style>
|
|
iframe {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
</style>
|
|
</body>
|
|
</html> |