我今天花了很大一部分来解决这个问题。但不能。
基本上,我想在PHP页面中嵌入Youtube视频。 <script>
// Load the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('ytplayer', {
height: '460',
width: '760',
videoId: '<? echo $var;>'
});
}
</script>
变量在PHP页面中定义,但我不能让JS显示变量。
$var
//when the page is load and the window resize detect if it's a smallscreen
var smallscreen = true;
$(window).on("resize load", function() {
if ($(window).width() > 991) {
smallscreen = false;
}
else {
smallscreen = true;
};
//if it's not a small screen activate the scrolling
if (smallscreen == false) {
$.fn.followTo = function ( pos ) {
var $this = this,
$window = $(window);
$window.scroll(function(e){
if ($window.scrollTop() > pos) {
$this.css({
position: 'absolute',
top: pos
});
}
else {
$this.css({
position: 'fixed',
top: 180
});
};
});
};
$('#checkout_validation').followTo(400);
}
else {
$.fn.followTo = function ( pos ) {
var $this = this,
$window = $(window);
$window.on("resize scroll load", function(e){
if ($window.scrollTop() > pos) {
$this.css({
position: 'initial',
width: '100%',
top: 0
});
}
else {
$this.css({
position: 'initial',
width: '100%',
top: 0
});
};
});
};
$('#checkout_validation').followTo(0);
};
});
变量在PHP文件中全局存在,但不起作用。我还在JS中声明了一个变量,没有成功。我做错了什么?
修改
由于它被标记为重复,请让我解释一下。我没有理解如何输出PHP变量的问题,无论我如何尝试,它都无法正常工作。
答案 0 :(得分:0)
使用Smarty作为模板引擎,您通常必须将脚本代码放在{literal}
标记内,因此要在文字标记内执行实际的php代码,您必须将php代码放在文字之外,所以你可以逃避脚本中的所有{ }
或者为你的回声打破文字,不是很漂亮但应该有效:videoId: '{/literal}{$var}{literal}'