好的,所以我真的试图找到一个解决方案,但到目前为止都没有奏效。事情是这样的: 在单击各种标记时,我想播放在标记属性中定义的名为vidName
的视频。
我用标记创建了变量"点",每个点都包含参数(版本缩短(:
var points = [{
latlng: [54.351223, 18.643997],
title: "F-1",
name: "name1",
vidName: "file1.mp4"
}, {
//another points with same structure
为了将其添加到地图中,我使用了一个允许 .on('click'( 事件的函数,该函数使用 .setContent(( 在名为"myCustomControl"的定义框中显示数据,如下所示(也缩短(:
points.forEach(function(p) {
const marker = L.marker(p.latlng, {
title: p.title,
riseOnHover: true
})
.addTo(map)
.on('click', function(e) {
myCustomControl.setContent(p.name + '<br>' + '<video autoplay><source src="p.vidName" type="video/mp4"></video>');
})
markers.push(marker);
});
所以我很想用'<video autoplay><source src="p.vidName" type="video/mp4"></video>'
来显示名为file#.mp4
的视频。p.vidName
作为独立工作正常并显示名称file#.mp4
,当我在 HTML 标签中使用file#.mp4
时,视频工作正常。
我尝试了各种东西,比如javascript:
," #{p.name}"
以及我能想出或谷歌搜索的所有可能的简单组合。我真的不是一个合适的程序员,我肯定缺少一些语法或简单的工具。 谢谢!
字符串连接适用于加法运算符+
。对于要包含的每个变量,关闭字符串并将值添加到字符串中,然后再次打开字符串以继续。
p.name + '<br>' + '<video autoplay><source src="' + p.vidName + '" type="video/mp4"></video>'
在更现代的时代,您拥有模板文字字符串,这些字符串是用反引号`
创建的,并允许您使用${value}
语法注入变量。
`${p.name}<br><video autoplay><source src="${p.vidName}" type="video/mp4"></video>`