Google Chrome 调用 JS 脚本控制台?

Google Chrome call a JS Script Console?

我基本上在尝试,这里做了什么:Calling a Javascript Function from Console

只是我找不到的另一种方式。

在 reddit.com,我正在尝试删除“尝试重新设计”按钮。如果你 F12 使用 Google Chrome 而在 reddit.com 你应该能够看到应用程序,你点击它然后转到脚本并搜索使用 CTRL+F 选择加入。然后你找到代码,我会把它的一部分放在这里。

    function f() {
        a("redesignbanner", "click", "r2banner_dismiss")
    }

这个

e.actions.on("onboarding:redesignbetabarClose", f),
e.actions.on("onboarding:redesignbetabarClickOptIn", c),

还有这个

        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.setDismissed(n.data(), !0) 了吗?基本上,我也尝试 运行 这个,但我不知道怎么做。

我的意思是删除右上角的那个按钮,看起来像这样。

如果您不知道如何获得该按钮,我会尝试弄清楚如何获得它。

您转到右上角的 reddit 帐户设置> 向下滚动并检查,使用重新设计作为我的默认体验> 然后点击保存

然后你再次进入设置,或者如果你还在那里,只需取消选中它,按钮就会出现,这很烦人,我无法摆脱它,看来我没有遇到这个问题以前其他人也有,但不是全部,这很奇怪。

由于 Reddit 将几乎所有 JavaScript 代码包装在匿名函数中,您无法访问其中定义的变量和函数。例如,看下面的代码:

(function() {
  var x = 2;
})();

变量 x 无法从匿名函数内部以外的任何地方访问,并且由于该函数没有名称,因此无法引用它或访问其中的任何内容。

Reddit 对他们的代码做同样的事情,这意味着您不能调用任何这些方法。但是,还有另一种隐藏按钮的方法,使用 CSS。该按钮有 class "redesign-beta-optin",所以下面的 CSS 将隐藏该按钮:

.redesign-beta-optin { display: none }

这可以用 JavaScript 来完成,就像这样:

document.getElementsByClassName("redesign-beta-optin")[0].style.display = "none"

编辑

要永久删除该按钮,您可以使用 Chrome 扩展程序,例如 Tampermonkey or Stylish,它允许您 运行 JavaScript 和 CSS在某些网页上。

要使用 Tampermonkey 执行此操作,请创建一个包含以下内容的 UserScript:

// ==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";

使用 Stylish,您可以为域 reddit.com 创建新样式,内容如下:

.redesign-beta-optin { display: none }

如果您使用 Tampermonkey,您会注意到网站加载按钮时会有一小段时间,因为初始化需要一些时间。时尚不会发生这种情况。