Hacker News new | ask | show | jobs
by 1000hz 3920 days ago
I've taken to popping open the devtools and deleting the offending DOM elements when this happens.
4 comments

Ctrl+Shift+C in Chrome lets you select the node even before you open the dev tools, and then you can just press "canc" to remove it.
Excellent tip. First part works great. But what do you mean by canc? Is that a button on the inspector? A key combination? Can't find it.

Maybe I'm missing something obvious. It's been a long day...

At least on a Mac, the delete key (or rather Fn-Backspace) does the trick.
Hey thanks for the tip! Would come real handy
I have a bookmarklet that lets me do that without popping open dev tools. When I get home I'll post it.
Here it is:

    javascript:(function(){document.styleSheets[0].addRule(".highlighted_to_remove","background:red !important");var e=function(e){if(e.keyCode==27){i()}};document.addEventListener("keydown",e);var t=function(e){e.stopPropagation();this.classList.add("highlighted_to_remove");return false};var n=function(e){e.stopPropagation();this.classList.remove("highlighted_to_remove");return false};var r=function(e){this.parentNode.removeChild(this);i();e.preventDefault();e.stopPropagation();return false};var i=function(){var i=0;var s=document;while(s=document.body.getElementsByTagName("*").item(i++)){s.removeEventListener("mouseover",t);s.removeEventListener("mouseout",n);s.removeEventListener("click",r);s.classList.remove("highlighted_to_remove")}document.removeEventListener("keydown",e)};var s=0;var o=document;while(o=document.body.getElementsByTagName("*").item(s++)){o.addEventListener("mouseover",t);o.addEventListener("mouseout",n);o.addEventListener("click",r)}})()
This is what I have in my "Kill Element" bookmarklet. (SECURITY NOTE: You should never blindly copy and paste javascript like this and run it in your browser.)

  javascript:(function(){var e=document.body.style.cursor;document.body.style.cursor="crosshair";var t=document.createElement("div");var n="border:1px solid #3280FF;background-color:rgba(50,128,255,0.5);position:absolute;z-index:999999999999999;display:none;";var%20r="pointer-events:none;";var%20i="transition:width%2060ms,height%2060ms,left%2060ms,top%2060ms;";n+=r+"-webkit-"+r+"-moz-"+r;n+=i+"-webkit-"+i+"-moz-"+i;t.setAttribute("style",n);document.body.appendChild(t);var%20s=null;var%20o=function(e){var%20n=e.target;if(n!==s&&n.parentNode){var%20r=n.getBoundingClientRect();var%20i=document.documentElement;var%20o=document.body;var%20u=i.clientTop||o.clientTop||0;var%20a=i.clientLeft||o.clientLeft||0;var%20f=window.pageYOffset||i.scrollTop||o.scrollTop;var%20l=window.pageXOffset||i.scrollLeft||o.scrollLeft;var%20c=l-a+r.left-1;var%20h=f-u+r.top-1;t.style.display="block";t.style.left=c+"px";t.style.top=h+"px";t.style.width=r.width+"px";t.style.height=r.height+"px";s=n}};var%20u=function(n){document.body.style.cursor=e;if(n.target.parentNode)n.target.parentNode.removeChild(n.target);if(t.parentNode)t.parentNode.removeChild(t);window.removeEventListener("click",u,false);window.removeEventListener("mouseover",o,false);n.stopPropagation();n.preventDefault()};window.addEventListener("mouseover",o,false);window.addEventListener("click",u,false)})();void(0)
Your comment makes this page have a long horizontal scroll, and a total pain in the ass to read now. Perhaps you can edit that and put in spaces so it wraps? Thanks.
In fairness, this is HN's fault - not allowing posts to mess up the whole page is basic fit-for-purposeness for forum software and the whole reason HTML is not allowed in the first place. Your workaround, on the other hand, breaks the content as bookmarklets are always one-liners. Evidently (according to a sibling comment) the solution is to prepend 4 spaces, which isn't exactly standard.

As for the bookmarklet, smashing stuff. I'm always deleting irritating stuff on pages using the inspector.

not blaming anyone, just wanna be able to read the comments :)
Please prepend four spaces to this - you have broken formatting on the entire page.
I often do this as well for elements that steal from vertical space - the claustrophobia-inducing ones anyway.
And if it's a site I visit more than once, creating a 'display: none' CSS override. Same for the floating headers that break paging, and similar annoyances. (I use the Stylish browser extension.)
For me, sites with intrusive ads and sites i visit more than once are two groups that do not intersect.
That works well until you get to sites that randomize the id/class/whatever of the element or automatically reinsert it once you kill it. At that point i usually look for a different site. Urgh. I wouldn't mind ads if the weren't that fucking annoying.