HTML-Javascript: относительно нетрадиционного назначения <param /> внутри <object>

Обновлено: теперь я вижу, где «значение» программно редактируется для параметра, поэтому я просто выберу имя параметра, которое должно быть глобально уникальным, и использовать эту методологию.

ИСХОДНЫЙ ВОПРОС: Подходит ли эта цель для <param />:

Я использую один тег <object> для каждого списка файлов камеры наблюдения, и мне нужно программно сохранить отметку файла, отображаемую в <td> рядом с <td> любого выбранного пользователем имени файла .mp4 из списка файлов TRANSIENT (или «таблицы») в стиле DOM это <object> для использования при управлении воспроизведением файла (или «видео») стилем DOM (также временным) для синхронизации времени нескольких <object>, воспроизводящих свои файлы .mp4 с нескольких камер.
Типичный список <object> показан ниже, но обратите внимание, что этот <object> представляет собой комбинированный список видео, снимков и камер, а не один из <object>, посвященный одной камере или типу файла: FWIW, я добавляю метки времени в <td aria-label=[timestamp to show]></td>, чтобы они не могли стать частью операций перетаскивания.

Мы говорим о 5 записанных камерах/видах, которые пользователь будет воспроизводить все 5 вместе, исследуя записанные действия. Каждый файл .mp4 представляет собой всего лишь 6-минутный сегмент в течение интересующего более длительного периода времени, поэтому я также буду загружать и воспроизводить последующие сегменты .mp4 после завершения предыдущего сегмента. FWIW, каждый макет DOM <object> является временным на уровне, о котором я здесь говорю, так что и информация о файлах, и динамически создаваемые прослушиватели событий теряются из DOM, когда стиль DOM <object> переходит от objectID.contentDocument.body.table к objectID.contentDocument.body.video. Чтобы не потерять всегда ценную, но временную информацию о временной метке файла, содержащуюся в DOM стиля таблицы, я обдумываю идею использования фиктивных <param /> элементов в <object> для передачи этой временной информации в objectID.contentDocument.body.video стиль <object> для конечной целью является то, чтобы все играющие <object> могли оставаться синхронизированными друг с другом, поскольку они последовательно воспроизводят свои сегменты .mp4.

Я подозреваю, что я ошибаюсь, пытаясь передать данные таким образом, потому что: УЖЕ НЕ СЛУЧАЙ: 1) <param /> кажутся доступными только для чтения везде, где к ним можно было бы получить обычный доступ в DOM, и 2) я бы рискнул выбрать <param /> имя уже заявлено для обычного <object> использования, и 3) мой уровень владения HTML здесь — новичок.

Подходит ли эта цель для <param />? Если нет, то наверняка есть лучший способ получить немного информации из переходной части DOM и сохранить ее выше в статической части DOM, не делая этого в глобальных переменных <script>, верно? ИМХО, по праву, такой фрагмент данных относится к <object>, к которому он относится, а не к глобальной переменной.

Вот один из моих <object>, за исключением того, что я показываю его с предположительно включенными <param>:

<object id = "sysjpgmp4_motion" type = "text/html"
  onload = "glonload( sysjpgmp4_motion.contentDocument.body.children[0].currentSrc, getElementById('sysjpgmp4_motion'), '', '', '', '', '')"
  onclick = "this.data=this.data;"
  data = "/camera_snapshots/camera_*/*jpg /var/www/camera_streams/camera_*/*mp4-MOTION"
  width = "1700px"
  height = "900px"
  style = "font-size:15px;overflow:auto;border:5px solid black;border-width:20px 3px 3px;">
  <param name = "timestamp" value = "initial" />
  <param name = "filename" value = "initial" />
</object>

Вот function glonload(...):

function glonload( currSrc, elid, elname, tagname, arg1, arg2, arg3 )
{
  if (elid.contentDocument.body.children[0] != 'undefined' && elid.contentDocument.body.children[0] != null && elid.contentDocument.body.children[0].localName == 'table')
  {
    if (elid.contentDocument.body.children[0].tBodies[0] == 'undefined' || elid.contentDocument.body.children[0].tBodies[0] == null){alert('Too many event files to list with ' + currSrc + '.  Delete overrunning ones on server.');return}
    elid.contentDocument.body.children[0].tBodies[0].addEventListener("click",function(item)
    {
//The hard-coded 2 pixel corrections below might need to be adjusted for border widths or other style settings the web server might send differently in the future:
       var rowindex=Math.trunc((item.pageY+2)/((elid.contentDocument.body.children[0].tBodies[0].clientHeight+2)/elid.contentDocument.body.children[0].tBodies[0].childElementCount)-.5)
       var filename=elid.contentDocument.body.children[0].tBodies[0].rows[rowindex].cells[1].innerText
       if (elid.contentDocument.body.children[0].tBodies[0].rows[rowindex].cells[1].innerText.endsWith('.mp4'))
       {
           var timestamp=elid.contentDocument.body.children[0].tBodies[0].rows[rowindex].cells[0].outerHTML.substr(18)
           timestamp=timestamp.substring(0,timestamp.indexOf(" ]"))
//THE FOLLOWING LINE IS WHERE I'M ASKING FOR HELP
//         elid.         =timestamp
     //Useful idiot: alert(timestamp)
      }
    })
  }
  else
  {
//Here the currentSource of object is now a loaded (or loading?) jpg or mp4 viewer. 
//Still got that timestamp from the click?   We'll need it here if this is the mp4 so all other objects match the time.  Let's store it in a non-transcient child of the object element somewhere on click.>
//But which way is the most acceptable?
  }
}
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
82
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Просто выберите глобально уникальное имя параметра и вернитесь к этой идее. В моем случае с именем «отметка времени» доступ к нему осуществляется программно с помощью elid.children["timestamp"], а его значение равно elid.children["timestamp"].value и доступно для редактирования.

Другие вопросы по теме