gpt4 book ai didi

javascript - 单击元素的 innerHTML

转载 作者:数据小太阳 更新时间:2023-10-29 05:46:50 24 4
gpt4 key购买 nike

如何使用 favelet 或脚本注入(inject)器获取随机网站页面上点击元素的 innerHTML?例如,单击此页面“提问”的正上方将返回以以下内容开头的内容:<div class="nav mainnavs " style="">
<ul style="">
<li style="">
.

我尝试从 slayeroffice.com 编辑一个 favelet,其最初目的是删除所选元素的子元素,但它似乎不起作用。

javascript:
var b = new Array();
var c= 1;
var d;
document.onkeydown = ck;
el = document.getElementsByTagName('*');
for (i = 0; i < el.length; i++)
{
if (el[i].tagName.search(/(HTML|BODY)/i) == -1)
{
if (el[i].title) el[i].oldTitle = el[i].title;
el[i].title = el[i].innerHTML;
d=String(el[i].innerHTML);
el[i].onclick = function(e)
{
t = this;
if (window.event) e = window.event;
if ((t == e.target) || (window.event)) alert(d);
if (window.opera) e.stopPropagation();
return false;
};
el[i].onmouseover = function()
{
if (!c) return;
c = 0;
t = this;
b[t] = t.style.backgroundColor;
t.style.background = '#DADADA';
};
void(
el[i].onmouseout = function()
{
t = this;
t.style.backgroundColor = b[t];
c = 1;
});
}

}
function ck(e)
{
k = window.event ? window.event.keyCode : e.keyCode;
if (k == 27)
{
for (i = 0; i < el.length; i++) {
if (el[i].tagName.search(/(HTML|BODY)/i) == -1)
{
el[i].oldTitle ? el[i].title = el[i].oldTitle : el[i].removeAttribute('title');
el[i].onclick = null;
el[i].onmouseover = null;
el[i].onmouseout = null;
el[i].style.backgroundColor = b[t];
}
}
}

}

有什么解决办法吗?

最佳答案

您可以将事件附加到文档的 onclick 处理程序。无需遍历页面上的每个元素。点击会冒泡到它...

document.onclick = function(event) {
var target = event.target || event.srcElement;

alert ( target.innerHTML );
};

但是我建议使用比“=”更好的方法来附加事件处理程序,因为它会覆盖任何先前定义的可能对页面操作至关重要的事件。

我之前使用过这个代码片段来实现更好的事件附加而无需 jQuery...

var bindEvent = function(elem ,evt,cb) {
//see if the addEventListener function exists on the element
if ( elem.addEventListener ) {
elem.addEventListener(evt,cb,false);
//if addEventListener is not present, see if this is an IE browser
} else if ( elem.attachEvent ) {
//prefix the event type with "on"
elem.attachEvent('on' + evt, function(){
/* use call to simulate addEventListener
* This will make sure the callback gets the element for "this"
* and will ensure the function's first argument is the event object
*/
cb.call(event.srcElement,event);
});
}
}

你只要打电话...

bindEvent(document,'click', function(event) {
var target = event.target || event.srcElement;

alert ( target.innerHTML );
});

关于javascript - 单击元素的 innerHTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16611012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com