这是两个部分:
我一直试图让这个工作,但我是新编码。我想点击按钮#video
和远程div #imageMain
将播放。
我写了以下内容:
<script>
$(document).ready(function(e) {
var videoURL = <?php echo $row_rs_dealItem['video']; ?>;
$('#video').click(function(e) {
$('#imageMain').html('<iframe class="youtube-player" type="text/html" width="435" height="244" src="' + videoURL + '" frameborder="0"></iframe>');
});
});
</script>
此外,有了这个脚本,HTML中的脚本会断开。如果我删除此脚本,其他工作正常。
videoUrl
需要引号,因为它是一个字符串:
var videoURL = '<?php echo $row_rs_dealItem['video']; ?>';
我想这也是影响你的第二个代码块的错误。
我出于必要而提供这个答案。
创建JavaScript变量的正确方法是:
var videoURL = "<?php echo $row_rs_dealItem['video']; ?>";
此外,还可以使用以下语法:
var videoURL = '<?php echo $row_rs_dealItem["video"]; ?>';
请注意,任何一种方法都不能有重复的引号集,因为引号是JavaScript中的字符串分隔符。有关更多信息,请参阅HERE。
我相信PHP会在iframe标记内部被动态创建后解释,而不是在那之前,特别是在jQuery Click事件期间,因为它本身就是渲染iframe。
完全实现SO问题后,提供完全不同的答案。
因为您的目标是让jQuery Click事件反过来播放id #video上的视频,您需要使用几个YouTube API's中的一个来调用YouTube播放方法。
YouTube有默认的Flash API,它基于他们的Flash AS3播放器,但他们也有一个HTML5 YouTube视频播放器,具有Flash后备,具体取决于您的项目需求。
Flash API Playground允许您测试API选项,并且该网站有一个实用的example,用于使用他们的Embed API工具在iframe中启动视频。
这个例子显示在这个jsFiddle以及一个alert
,表明视频即将使用API YouTube .playVideo()
命令播放到iframe,这是你的目标和问题(尽管有潜在的PHP问题)。
至于我的另一个SO答案是基于在jQuery Click事件期间嵌入iframe播放器,任何人都可以阐明这种语法以及我对PHP(在iframe创建时)以我建议的方式嵌入PHP的理解并认为它是不正确将得到积极的赞赏。
此外,如果您的目的是在jQuery Click事件时注入videoID
URL,这可能是随机的,具体取决于点击的row
,请说明。