Использование значения JavaScript внутри тега видео HTML внутри .setContent () в Leaflet - PullRequest
0 голосов
/ 25 мая 2020

Хорошо, я действительно пытался найти решение, но пока ничего не вышло. Вот и все: нажимая на различные маркеры, я хочу воспроизвести видео с именем 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, когда я использую file#.mp4 внутри тега HTML, видео работает нормально.

Я пробовал разные вещи, например javascript:, " #{p.name}" и все возможные простые комбинации, которые я смог вычислить или найти в Google. Я действительно не настоящий программист, мне определенно не хватает синтаксиса или простого инструмента. Спасибо!

1 Ответ

1 голос
/ 25 мая 2020

Объединение строк работает с оператором сложения +. Для каждой переменной, которую вы хотите включить, закройте строку и добавьте значение в строку, затем откройте строку снова, чтобы продолжить.

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>`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...