Как выполнить js функцию HTML из SVG в объекте?

 <object
  type="image/svg+xml"
  data="display.svg">

 <script type="text/javascript">
   function hop(name, evt) {
        console.log('!!!')
   }
 </script>

Или как инжектнуть скрипт в объект?

Цель получить клик по <path> с параметрами evt.target или хотяб id в js главного фрейма.


Ответы (1 шт):

Автор решения: eri

Пока сделал на jquery

<!DOCTYPE html>
<html>
<head>
  <script src="https://code.jquery.com/jquery-3.6.0.js"></script>
</head>
<body>
  <div id=map></div>
  <script type="text/javascript">
    function hop(name, evt) {
        console.log('!!!')
    } 
    window.onload = (function (){
      $('#map').load('display.svg')
    })
 </script>
</body>
</html>

svg вставляется в div без обертки object, скрипт внутри и снаружи исполняется как нужно.

Функция hop вызфвается из

   ...
    <path
       style="fill:#00cc00;fill-opacity:1;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
       d="m 74.646387,123.56036 -0.02103,-12.25607 -12.697325,-0.0459 -0.07117,12.29129 z"
       id="path1079"
       onmouseover="hop('вошел',evt)"
       onmouseout="hop('вышел',evt)" />
→ Ссылка