谷歌浏览器调用JS脚本控制台?

时间:2018-05-06 18:48:51

标签: javascript google-chrome debugging console reddit

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

只是以另一种我无法找到的方式。

在reddit.com上,我试图删除“尝试重新设计”按钮。如果您在reddit.com中使用谷歌浏览器 F12 ,您应该能够看到应用程序,单击该应用程序,然后转到脚本并使用 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)?基本上,我也试图运行它,但我无法弄清楚如何。

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

Try the Redesign

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

Reddit对他们的代码执行相同的操作,这意味着您无法调用任何这些方法。但是,还有另一种使用CSS隐藏按钮的方法。该按钮具有“redesign-beta-optin”类,因此以下CSS将隐藏按钮:

.redesign-beta-optin { display: none }

这可以通过JavaScript完成:

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

修改

要永久删除该按钮,您可以使用Chrome扩展程序,例如TampermonkeyStylish,以便在某些网页上运行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,那么当您使用按钮加载网站时,您会注意到一小段时间,因为初始化需要一些时间。时尚不会发生这种情况。