Skip to content

Adblockers are always detected as enabled in ReactJS #83

Closed
@andreathniah

Description

@andreathniah

As the title says, it seems that adblocks are always detected when used in ReactJS even when there are no adblock in place. The code below is copied wholesale from the demo website.

Here's the link: https://codesandbox.io/s/64k2rx8w03

import React from "react";
import ReactDOM from "react-dom";
import fuckAdBlock from "fuckadblock";

class DetectAdBlock extends React.Component {
  // Function called if AdBlock is not detected
  adBlockNotDetected = () => {
    alert("AdBlock is not enabled");
  };
  // Function called if AdBlock is detected
  adBlockDetected = () => {
    alert("AdBlock is enabled");
  };

  detectAdBlock = () => {
    // We look at whether FuckAdBlock already exists.
    if (
      typeof fuckAdBlock !== "undefined" ||
      typeof FuckAdBlock !== "undefined"
    ) {
      // If this is the case, it means that something tries to usurp are identity
      // So, considering that it is a detection
      this.adBlockDetected();
    } else {
      // Otherwise, you import the script FuckAdBlock
      var importFAB = document.createElement("script");
      importFAB.onload = function() {
        // If all goes well, we configure FuckAdBlock
        fuckAdBlock.onDetected(this.adBlockDetected);
        fuckAdBlock.onNotDetected(this.adBlockNotDetected);
      };
      importFAB.onerror = function() {
        // If the script does not load (blocked, integrity error, ...)
        // Then a detection is triggered
        this.adBlockDetected();
      };
      importFAB.integrity =
        "sha256-xjwKUY/NgkPjZZBOtOxRYtK20GaqTwUCf7WYCJ1z69w=";
      importFAB.crossOrigin = "anonymous";
      importFAB.src =
        "https://cdnjs.cloudflare.com/ajax/libs/fuckadblock/3.2.1/fuckadblock.min.js";
      document.head.appendChild(importFAB);
    }
  };

  render() {
    return (
      <div id="adblock-wrapper">
        <button onClick={this.detectAdBlock}>click me</button>
      </div>
    );
  }
}
const rootElement = document.getElementById("root");
ReactDOM.render(<DetectAdBlock />, rootElement);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions