Как добавить JavaScript OnClick Handler в встроенный объект HTML?
-
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 больше нет. Не удивительно, что лучшие ссылки, которые я могу сейчас (быстро) найти на сам столбец.
Другие советы
Использовать либо привязка 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!');"/>