Получить все встроенные события из строки HTML - PullRequest
0 голосов
/ 16 октября 2011

Я пытаюсь получить список всех встроенных тегов событий из строки HTML <body>, как мне это сделать?

Пример:

 <a onclick='foo()'></a>

Я бы хотел извлечь onclick='foo()'.

Возможно ли это с помощью REGEX или любых других альтернатив?

Ответы [ 2 ]

0 голосов
/ 16 октября 2011

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

var doc = document.implementation.createHTMLDocument('');
doc.documentElement.innerHTML = '<body onload="alert(1)"></body>'; // your string here

Затем получите атрибуты on*, используя методы DOM:

var attributes = Array.prototype.slice.call(doc.body.attributes);
for (var i = 0; i < attributes.length; i++) {
    if (/^on/.test(attributes[i].name)) {
        console.log(attributes[i].name, attributes[i].value);
    }
}
0 голосов
/ 16 октября 2011

Вот один. Событие-вещь будет группа 1:

<\w+[^>]+(on[a-z]+=["'][^"']+["'])[^>]*>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...