Kop*_*lyf 6 html javascript anchor jquery href
我在html中有一个锚标记元素,如:
<a href="javascript:handleEvent(this, 'abc')"></a>
Run Code Online (Sandbox Code Playgroud)
现在在javascript函数中,我写了:
function handleEvent(sourceElement, txt) {
console.log(sourceElement);
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,安慰元素将成为窗口.我尝试了sourceElement.document.activeElement,但它似乎不适用于chrome,它将作为body元素出现.
我无法将锚标记的结构更改为'onClick'函数,因为这来自其他一些来源.有没有办法在这种情况下找到调用元素?
这里真正的答案是改变 HTML,你已经说过你不能这样做。如果可以的话我会反驳这一点。如果你正在编写函数,并且函数名称在 HTML 中,那么你为什么不能更改 HTML?
但如果你真的真的不能,你可以在加载 DOM 后更新它:
var list = document.querySelectorAll('a[href^="javascript:"]');
var x, link;
for (x = 0; x < list.length; ++x) {
link = list[x];
link.onclick = new Function(link.href.substring(11));
link.href = "javascript:;";
}
Run Code Online (Sandbox Code Playgroud)
这相当顽皮,因为它使用了Function构造函数(这非常类似于eval),但如果您信任 HTML 的源代码,那应该没问题。
或者当然,如果您不必使用 中的任何内容来href开始,只需在上面的代码中连接您的事件处理程序并且不要使用new Function.
| 归档时间: |
|
| 查看次数: |
3606 次 |
| 最近记录: |