Как добавить JavaScript OnClick Handler в встроенный объект HTML?

StackOverflow https://stackoverflow.com/questions/3156303

  •  01-10-2019
  •  | 
  •  

Вопрос

Я пытаюсь добавить обработчик OnClick в встроенный объект. Обработчик должен выполнить функцию, которая находится во внешнем файле .js, который связан с текущим файлом HTML через <script src="....

Нужно ли мне ссылаться на функцию по-разному из-за того, что она находится в другом месте?

Вот код, поскольку он в настоящее время стоит (что не работает, но и не вызывает никаких ошибок):

<embed src="svg/button.svg" id="buttonEmbed" width="95" height="53" 
type="image/svg+xml" onClick="buttonEvent('buttonClicked')"/>
Это было полезно?

Решение

Вы должны реализовать OnClick внутри SVG и связывает его к внешней функции JavaScript с помощью JavaScript внутри SVG. Смотрите SVG Wiki для примеров.

Обновление: видимо, SVG Wiki больше нет. Не удивительно, что лучшие ссылки, которые я могу сейчас (быстро) найти на сам столбец.

Этот ответ описывает, как реализовать onclick внутри SVG.

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

Использовать либо привязка JavaScript (Mario Menger ответил это уже).

Если вы не можете или не будете использовать привязку, вы можете использовать то, что xil3. Ответил с одной модификацией:

Используйте пустой якорный тег <a href="javascript:someFunc()"></a> как клик потребитель. Установите его Z-индекс и положение / размер, поэтому он расположен на объекте SVG (для совместимости кросс-браузера).

OnClick должен быть строчным.

<embed src="svg/button.svg" id="buttonEmbed" width="95" height="53" 
type="image/svg+xml" onclick="alert('hello!');"/>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top