求助, javascript 屏蔽搬瓦无货脚本,添加恢复功能失效,大家帮忙看看

2017-10-24 14:48:09 +08:00
 cisisustring

要求有两点,1、屏蔽无货 已经达成 2、添加一个恢复按钮 未达成 现在的问题是按钮添加后没有功能。不知道是什么原因。 ps:在油猴 Tampermonkey 上运行

(function() { 'use strict';

var b = document.getElementsByTagName("em");
var blok = new Array();
for (var i in b) {
	if (b[i].innerHTML == "(out of stock)") {
		b[i].parentNode.parentNode.style.display = "none";
		blok = blok.concat(b[i]);
	}
}
alert("屏蔽成功!");
var myMethods = {
	showMethod: function() {
		for (var k in blok) {
			blok[k].style.display = "block";
		}
		alert("调用成功!");
	}
};
var fat = document.getElementById("order-web20cart").getElementsByTagName("div")[0];
var butt = document.createElement("input");
butt.setAttribute("type", "button");
butt.setAttribute("value", "显示所有");
butt.setAttribute("onclick", 'myMethods.showMethod()');//这个 showMethod()调不出来
fat.appendChild(butt);
// Your code here...

})();

2804 次点击
所在节点    JavaScript
8 条回复
jy02534655
2017-10-24 15:30:23 +08:00
监听点击事件能这样写么?
cisisustring
2017-10-24 15:52:27 +08:00
@jy02534655 我自己写 testDemo 都是这样写,能点击出来。但是在油猴上就不行,不知道是不是油猴不支持
MinonHeart
2017-10-24 16:07:55 +08:00
这是想显示隐藏 out of stock ?

blok = blok.concat(b[i]); 这句错了

改成 blok.push(b[i].parentNode.parentNode);
Marfal
2017-10-24 16:18:12 +08:00
瓦工 HK 近期要上线了,目测要被操烂
cisisustring
2017-10-24 16:29:09 +08:00
@MinonHeart @jy02534655 谢谢指正。这里补上以后,setAttribute 还是不能调用 showMethod(),听从 1 楼的建议换监听点击事件后就可以,不知道为什么。
下面是修改后的代码<br>
(function() {
'use strict';

var b = document.getElementsByTagName("em");
var blok = new Array();
var temp=0;
for (var i in b) {
if (b[i].innerHTML == "(out of stock)") {
b[i].parentNode.parentNode.parentNode.parentNode.parentNode.style.display = "none";
blok = blok.concat(b[i].parentNode.parentNode.parentNode.parentNode.parentNode);
}
}
alert("屏蔽成功!");
var myMethods = {
showMethod: function() {
for (var k in blok) {
blok[k].style.display = "block";
}
alert("全部显示!");
}
};
var fat = document.getElementById("order-web20cart").getElementsByTagName("div")[0];
var butt = document.createElement("input");
butt.setAttribute("type", "button");
butt.setAttribute("value", "显示所有");
butt.setAttribute("id", "mybutton");//新加 id
// butt.setAttribute("onclick", "myMethods.showMethod()");//用 setAttribute 不能成功
fat.appendChild(butt);
document.getElementById("mybutton").addEventListener("click",myMethods.showMethod);//绑定事件监听成功执行
// Your code here...
})();
jy02534655
2017-10-24 16:40:05 +08:00
@cisisustring 应该是兼容问题,js 常见坑
cisisustring
2017-10-24 16:48:00 +08:00
@jy02534655 目前是这个样子,能用就行。
feast
2017-10-24 18:14:04 +08:00
@Marfal GFW 表示密切关注 IP,到时候全部 BLOCK

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/400241

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX