YouTube链接自动转播放器演示
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>YouTube链接自动转播放器</title>
<style>
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
max-width: 900px;
margin: 0 auto;
padding: 20px;
background-color: #f5f5f5;
color: #333;
}
.container {
background: white;
border-radius: 10px;
padding: 30px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
h1 {
color: #FF0000;
text-align: center;
margin-bottom: 30px;
font-size: 2.5rem;
}
.description {
background-color: #f8f9fa;
padding: 20px;
border-radius: 8px;
margin-bottom: 30px;
border-left: 4px solid #FF0000;
}
.youtube-link {
display: inline-block;
padding: 12px 20px;
background-color: #FF0000;
color: white;
text-decoration: none;
border-radius: 5px;
font-weight: bold;
margin: 20px 0;
transition: all 0.3s ease;
}
.youtube-link:hover {
background-color: #CC0000;
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(255,0,0,0.3);
}
.player-container {
margin: 30px 0;
border-radius: 10px;
overflow: hidden;
box-shadow: 0 4px 15px rgba(0,0,0,0.2);
background-color: #000;
}
.player-container iframe {
width: 100%;
height: 500px;
border: none;
display: block;
}
.info-box {
background-color: #e8f4fd;
border: 1px solid #bee5eb;
padding: 15px;
border-radius: 5px;
margin-top: 20px;
}
.info-box h3 {
margin-top: 0;
color: #0c5460;
}
.code-block {
background-color: #f8f9fa;
border: 1px solid #dee2e6;
padding: 15px;
border-radius: 5px;
font-family: monospace;
overflow-x: auto;
margin: 15px 0;
}
.note {
font-style: italic;
color: #6c757d;
margin-top: 10px;
}
@media (max-width: 768px) {
.player-container iframe {
height: 300px;
}
h1 {
font-size: 2rem;
}
}
</style>
</head>
<body>
<div class="container">
<h1>YouTube链接自动转播放器演示</h1>
<div class="description">
<p>这个页面演示了如何使用JavaScript自动将YouTube链接转换为内嵌播放器。</p>
<p>下面的链接会被JavaScript自动检测并转换为播放器:</p>
</div>
<!-- 这是我们要转换的YouTube链接 -->
<a href="https://www.youtube.com/watch?v=M6AojAbC7XE" class="youtube-link">
https://www.youtube.com/watch?v=M6AojAbC7XE
</a>
<!-- 播放器将在这里自动插入 -->
<div id="player-container"></div>
<div class="info-box">
<h3>实现原理</h3>
<p>JavaScript代码会自动检测页面中的YouTube链接,提取视频ID,然后创建一个嵌入播放器。</p>
<div class="code-block">
// 获取所有YouTube链接<br>
const youtubeLinks = document.querySelectorAll('a.youtube-link');<br><br>
// 遍历每个链接<br>
youtubeLinks.forEach(link => {<br>
// 提取视频ID<br>
const videoId = extractYouTubeId(link.href);<br><br>
if (videoId) {<br>
// 创建播放器<br>
const player = createYouTubePlayer(videoId);<br><br>
// 在链接后面插入播放器<br>
link.parentNode.insertBefore(player, link.nextSibling);<br>
}<br>
});
</div>
<p class="note">注意:这个演示使用了固定的YouTube链接。在实际应用中,您可以将任何YouTube链接添加到页面中,只要它们有"youtube-link"类名,就会被自动转换。</p>
</div>
</div>
<script>
// 等待页面加载完成
document.addEventListener('DOMContentLoaded', function() {
// 获取所有带有youtube-link类的链接
const youtubeLinks = document.querySelectorAll('a.youtube-link');
// 遍历每个链接
youtubeLinks.forEach(link => {
// 提取YouTube视频ID
const videoId = extractYouTubeId(link.href);
if (videoId) {
// 创建YouTube播放器
const player = createYouTubePlayer(videoId);
// 在链接后面插入播放器
link.parentNode.insertBefore(player, link.nextSibling);
// 可选:隐藏原始链接
// link.style.display = 'none';
}
});
});
// 提取YouTube视频ID的函数
function extractYouTubeId(url) {
// 支持多种YouTube URL格式
const regex = /(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/)([^&\n?#]+)/;
const match = url.match(regex);
return match ? match[1] : null;
}
// 创建YouTube播放器的函数
function createYouTubePlayer(videoId) {
// 创建播放器容器
const container = document.createElement('div');
container.className = 'player-container';
// 创建iframe元素
const iframe = document.createElement('iframe');
iframe.src = `https://www.youtube.com/embed/${videoId}`;
iframe.allow = 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture';
iframe.allowFullscreen = true;
// 将iframe添加到容器中
container.appendChild(iframe);
return container;
}
</script>
</body>
</html>
复制链接
https://blog.imsun.org/archives/601.html
复制成功!