How to remove CSS Class with Tampermonkey?

2020-04-24 04:15发布

I am very new to CSS and javascript, so take it easy on me.

I am trying to remove the class disable-stream from each of the div elements under the div class="stream-notifications". (See image, below)

I have tried the following in Tampermonkey, but it doesn't seem to work:

(function() {
'use strict';
disable-stream.classList.remove("disable-stream");})();

screen shot of page structure

3条回答
萌系小妹纸
2楼-- · 2020-04-24 04:34

Use something like this using jQuery

$(".disable-stream div").removeClass("disable-stream");

Plunker demo

查看更多
仙女界的扛把子
3楼-- · 2020-04-24 04:35
var divs =document.getElementsByClassName("stream-notifications");

divs=Array.from(divs);

divs.forEach(function(div){
  div.classList.remove('disable-stream');
 });
查看更多
家丑人穷心不美
4楼-- · 2020-04-24 04:37

That looks to be an AJAX-driven web page, so you need to use AJAX-aware techniques to deal with it. EG waitForKeyElements, or MutationObserver, or similar.

Here's a complete script that should work:

// ==UserScript==
// @name     _Remove a select class from nodes
// @match    *://app.hubspot.com/reports-dashboard/*
// @match    *://app.hubspot.com/sales-notifications-embedded/*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @require  https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant    GM_addStyle
// ==/UserScript==
//- The @grant directive is needed to restore the proper sandbox.
console.log ("Do you see this?");

waitForKeyElements (".disable-stream", removeDSclass);

function removeDSclass (jNode) {
    console.log ("Cleaned node: ", jNode);
    jNode.removeClass ("disable-stream");
}

Note that there are two @match statements because the nodes, that the OP cared about, turned out to be in an iframe.

查看更多
登录 后发表回答