从 HTML 字符串获取所有内联事件

发布于 2024-12-10 07:46:40 字数 212 浏览 0 评论 0原文

我正在尝试从 HTML 字符串中获取所有内联事件标记的列表,我该如何执行此操作?

示例:

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

我想要提取 onclick='foo()'

是否可以使用 REGEX 或任何其他替代方案?

I'm trying to get a list of all inline event tags from an HTML <body> string, how would I be able to do this?

Example:

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

I'd want to extract onclick='foo()'.

Is it possible with REGEX or any other alternatives?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

爱已欠费 2024-12-17 07:46:40

这是一个。事件事物将属于组 1:

<\w+[^>]+(on[a-z]+=["'][^"']+["'])[^>]*>

Here's one. The event-thing will be group 1:

<\w+[^>]+(on[a-z]+=["'][^"']+["'])[^>]*>
请叫√我孤独 2024-12-17 07:46:40

您应该让浏览器进行解析,例如这样:

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

然后使用 DOM 方法获取 on* 属性:

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);
    }
}

You should let the browser do the parsing, for example like this:

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

Then get the on* attributes using DOM methods:

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);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文