Disable notion.so DOMLock, which prevents DOM modification from extensions.
// ==UserScript==
// @name Notion.so DOMLock bypass
// @description Disable notion.so DOMLock, which prevents DOM modification from extensions.
// @namespace http://tampermonkey.net/
// @version 0.1
// @author Sophie Saiada (sophies.dev)
// @license MIT
// @include https://www.notion.so/*
// @grant none
// ==/UserScript==
(function () {
const lockAfterRenderRegex =
/\W+at [a-zA-Z]+\.lockAfterRender \(https:\/\/www.notion.so\/app/;
// eslint-disable-next-line no-proto
const mutationObserverPrototype = MutationObserver.prototype;
const originalObserve = mutationObserverPrototype.observe;
mutationObserverPrototype.observe = function () {
const stackLines = new Error().stack.split("\n");
if (
stackLines.some(function (line) {
return line.match(lockAfterRenderRegex) !== null;
})
) {
return;
}
originalObserve.call(this, ...arguments);
};
})();