{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreiexvqitconcrvsgcmrruywia373asyeyqpo6mhimvlzlnmwrblaeq",
"uri": "at://did:plc:lk3jfj3zq4k4wxnk474axylu/app.bsky.feed.post/3mebegymblns2"
},
"path": "/t/how-to-disable-the-very-annoying-ask-chatgpt/1360805#post_11",
"publishedAt": "2026-02-07T10:51:20.000Z",
"site": "https://community.openai.com",
"tags": [
"@name",
"@version",
"@description",
"@match",
"@match",
"@run-at"
],
"textContent": "I tried the Tampermonkey script posted above, but it did not work. So I asked (yes, you guessed it) ChatGPT, and this one does work!\n\n\n // ==UserScript==\n // @name Hide “Ask ChatGPT” selection popup\n //\n http://tampermonkey.net/\n // @version 2026-02-07.1\n // @description Hides the “Ask ChatGPT” popup that appears when selecting text on chatgpt.com\n //\n You\n // @match https://chatgpt.com/*\n // @match https://chat.openai.com/*\n // @run-at document-start\n //\n none\n // ==/UserScript==\n\n (function () {\n ‘use strict’;\n\n // Try to hide the container that holds the “Ask ChatGPT” control.\n function hideAskPopup(root = document) {\n // Look for clickable elements that literally say “Ask ChatGPT”\n const candidates = root.querySelectorAll(‘button, a, [role=“button”]’);\n\n for (const el of candidates) {\n const txt = (el.textContent || '').trim();\n if (txt === 'Ask ChatGPT') {\n // Walk up to a reasonable container and hide it\n let container = el;\n for (let i = 0; i < 6 && container; i++) {\n // Heuristics: popups/menus are often \"dialog/menu/tooltip/portal\" like containers\n const role = container.getAttribute?.('role') || '';\n const isPopupy =\n role === 'dialog' || role === 'menu' || role === 'tooltip' ||\n container.className?.toString().toLowerCase().includes('popover') ||\n container.className?.toString().toLowerCase().includes('tooltip');\n\n if (isPopupy) break;\n container = container.parentElement;\n }\n\n (container || el).style.setProperty('display', 'none', 'important');\n (container || el).style.setProperty('visibility', 'hidden', 'important');\n (container || el).style.setProperty('pointer-events', 'none', 'important');\n }\n }\n\n }\n\n // Run once early and again when DOM is ready\n hideAskPopup();\n\n // Watch for dynamic UI insertion (React portals etc.)\n const observer = new MutationObserver((mutations) => {\n for (const m of mutations) {\n for (const node of m.addedNodes) {\n if (node.nodeType === 1) hideAskPopup(node);\n }\n }\n });\n\n function startObserver() {\n observer.observe(document.documentElement, {\n childList: true,\n subtree: true\n });\n }\n\n if (document.documentElement) startObserver();\n else window.addEventListener(‘DOMContentLoaded’, startObserver, { once: true });\n })();\n",
"title": "How to disable the very annoying Ask ChatGPT?"
}