Javascript Google Chrome调用JS脚本控制台?
我正在尝试基本上,这里要做的是: 只是以另一种我无法发现的方式 在reddit.com上,我正在尝试删除该按钮,并尝试重新设计按钮。如果您在reddit.com中使用Google Chrome时使用F12,您应该能够看到应用程序,您可以单击该应用程序,然后转到脚本并使用CTRL+F搜索OptIn。然后您可以找到代码,我将在这里输入部分代码Javascript Google Chrome调用JS脚本控制台?,javascript,google-chrome,debugging,console,reddit,Javascript,Google Chrome,Debugging,Console,Reddit,我正在尝试基本上,这里要做的是: 只是以另一种我无法发现的方式 在reddit.com上,我正在尝试删除该按钮,并尝试重新设计按钮。如果您在reddit.com中使用Google Chrome时使用F12,您应该能够看到应用程序,您可以单击该应用程序,然后转到脚本并使用CTRL+F搜索OptIn。然后您可以找到代码,我将在这里输入部分代码 function f() { a("redesignbanner", "click", "r2banner_dismiss")
function f() {
a("redesignbanner", "click", "r2banner_dismiss")
}
这个
还有这个
initBanner: function() {
var n = $(".redesignbetabar");
if (!n.length)
return;
$("#redesign-beta-optin").on("click", function() {
e.actions.trigger("onboarding:redesignbetabarClickOptIn"),
t(function() {
e.onboardingBar.setDismissed(n.data(), !0),
window.location.reload(!0)
}, function(t, n, i) {
e.warn("Error opting in to redesign", n, ";", i)
})
})
}
你看到e.onboardingBar.setDisabled(n.data(),!0)了吗?基本上,我也试着运行这个,但我不知道如何运行
我的意思是移除右上角的按钮,看起来像这样
如果你不知道如何得到那个按钮,我会设法找出如何得到它
您进入右上角的reddit帐户设置>向下滚动并选中,使用重新设计作为我的默认体验>然后单击保存
然后你再次进入设置,或者如果你仍然在那里,只需取消选中它,按钮就会出现,这很烦人,我无法摆脱它,似乎我以前没有遇到过这个问题,其他人也有,但不是全部,这很奇怪。因为Reddit在匿名函数中包装了几乎所有的JavaScript代码,您无法访问其中定义的变量和函数。例如,请参见以下代码:
(function() {
var x = 2;
})();
除了匿名函数内部,变量x不能从任何地方访问,而且由于该函数没有名称,因此无法引用它或访问其中的任何内容
Reddit对他们的代码做了同样的事情,这意味着你不能调用任何这些方法。但是,还有另一种使用CSS隐藏按钮的方法。该按钮具有“重新设计beta optin”类,因此以下CSS将隐藏该按钮:
.redesign-beta-optin { display: none }
这可以通过JavaScript实现,如下所示:
document.getElementsByClassName("redesign-beta-optin")[0].style.display = "none"
编辑
要永久删除该按钮,您可以使用Chrome扩展,例如或,它允许您在某些网页上运行JavaScript和CSS
要使用Tampermonkey执行此操作,请创建包含以下内容的用户脚本:
// ==UserScript==
// @name Reddit Redesign Button Remover
// @description Remove reddit redesign button
// @author kmh
// @match https://*.reddit.com/*
// ==/UserScript==
document.getElementsByClassName("redesign-beta-optin")[0].style.display = "none";
.redesign-beta-optin { display: none }
使用style,您可以使用以下内容为域reddit.com创建新样式:
// ==UserScript==
// @name Reddit Redesign Button Remover
// @description Remove reddit redesign button
// @author kmh
// @match https://*.reddit.com/*
// ==/UserScript==
document.getElementsByClassName("redesign-beta-optin")[0].style.display = "none";
.redesign-beta-optin { display: none }
如果使用Tampermonkey,您会注意到站点加载时会有一小段时间,因为初始化需要一些时间。这在Style中不会发生。因为Reddit将几乎所有的JavaScript代码封装在匿名函数中,所以您无法访问其中定义的变量和函数。例如,请参见以下代码:
(function() {
var x = 2;
})();
除了匿名函数内部,变量x不能从任何地方访问,而且由于该函数没有名称,因此无法引用它或访问其中的任何内容
Reddit对他们的代码做了同样的事情,这意味着你不能调用任何这些方法。但是,还有另一种使用CSS隐藏按钮的方法。该按钮具有“重新设计beta optin”类,因此以下CSS将隐藏该按钮:
.redesign-beta-optin { display: none }
这可以通过JavaScript实现,如下所示:
document.getElementsByClassName("redesign-beta-optin")[0].style.display = "none"
编辑
要永久删除该按钮,您可以使用Chrome扩展,例如或,它允许您在某些网页上运行JavaScript和CSS
要使用Tampermonkey执行此操作,请创建包含以下内容的用户脚本:
// ==UserScript==
// @name Reddit Redesign Button Remover
// @description Remove reddit redesign button
// @author kmh
// @match https://*.reddit.com/*
// ==/UserScript==
document.getElementsByClassName("redesign-beta-optin")[0].style.display = "none";
.redesign-beta-optin { display: none }
使用style,您可以使用以下内容为域reddit.com创建新样式:
// ==UserScript==
// @name Reddit Redesign Button Remover
// @description Remove reddit redesign button
// @author kmh
// @match https://*.reddit.com/*
// ==/UserScript==
document.getElementsByClassName("redesign-beta-optin")[0].style.display = "none";
.redesign-beta-optin { display: none }
如果使用Tampermonkey,您会注意到站点加载时会有一小段时间,因为初始化需要一些时间。Style不会出现这种情况。看起来像是一个方法(对象中的函数),您可以通过objectname.initBanner()访问它,尽管可能有更多嵌套(我没有检查源代码)。如果一切都在$.ready内,您可以将其忘记(就像关闭一样)。即使有效,您也只能访问单击处理程序。。这会触发自定义事件。。。换句话说,这将使你一事无成。您最好使用选择器删除元素。。。ie尝试类似于
jQuery(“#header”).remove()
我试图永久删除它,但它只是暂时的,不确定google chrome缓存是如何工作的。当然,当你重新加载页面时它会回来。。。唯一能永久摆脱它的方法是,如果reddit更改了源代码,它看起来就像一个方法(对象中的函数),您可以通过objectname.initBanner()访问它,尽管可能有更多嵌套(我没有检查源代码)。如果一切都在$.ready内,您可以将其忘记(就像关闭一样)。即使有效,您也只能访问单击处理程序。。这会触发自定义事件。。。换句话说,这将使你一事无成。您最好使用选择器删除元素。。。ie尝试类似于jQuery(“#header”).remove()
我试图永久删除它,但它只是暂时的,不确定google chrome缓存是如何工作的。当然,当你重新加载页面时它会回来。。。永久删除它的唯一方法是,如果reddit更改其源代码,[0]用于什么?document.getElementsByClassName返回一个元素数组,因为多个元素可以共享相同的类名。[0]获取数组的第一个元素,我们知道它是我们想要的元素,因为该类只有一个元素。如果在reddit上创建新帐户,它将不会显示该内容,也不确定如何显示,但如果我操作cookies,它可能会使它消失。什么是[0]for?document.getElementsByClassName返回元素数组,因为多个元素可以共享相同的类名。[0]获取数组的第一个元素,我们知道它是我们想要的元素,因为该类只有一个元素。如果在reddit上创建新帐户,它将不会显示该内容,也不确定如何显示,但如果我操作cookie,它可能会使它消失?