Google Chrome вызывает JS Script Console? - PullRequest
0 голосов
/ 06 мая 2018

Я пытаюсь в основном, что здесь делается: Вызов функции Javascript из консоли

Просто по-другому, что я не могу узнать.

На reddit.com я пытаюсь удалить эту кнопку. Попробуйте изменить дизайн. Если вы F12 используете Google Chrome, а на сайте reddit.com вы должны увидеть приложение, щелкните его, а затем перейдите к сценариям и выполните поиск OptIn, используя 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 голосов
/ 06 мая 2018

Поскольку 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"

EDIT

Чтобы окончательно избавиться от кнопки, вы можете использовать расширение Chrome, например Tampermonkey или Стильный , которое позволяет запускать 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, так как для инициализации требуется некоторое время. Этого не происходит со Стильным.

...