Skip to content

Instantly share code, notes, and snippets.

@tsunyan
Created February 19, 2020 07:07
Show Gist options
  • Save tsunyan/15ebde9a130010e9db7c78a403b678c1 to your computer and use it in GitHub Desktop.
Save tsunyan/15ebde9a130010e9db7c78a403b678c1 to your computer and use it in GitHub Desktop.
画像を非表示にするブックマークレット
javascript: void((function() {
function toArray(c) {
var a, k;
a = new Array;
for (k = 0; k < c.length; ++k) a[k] = c[k];
return a;
}
var execFlag = false;
function removeImage() {
console.log("removeImageSub() called");
if (execFlag) {
console.log("removeImageSub() cancelled");
return;
} else {
execFlag = true;
}
console.log("removeImageSub() executing");
var images = toArray(document.images);
removeImageReplaceText(images);
removeImageSub(document);
replaceLink(document);
execFlag = false;
console.log("removeImageSub() executed");
}
function removeImageReplaceText(imgs) {
var img, altText;
for (var ix = 0; ix < imgs.length; ++ix) {
img = imgs[ix];
altText = document.createTextNode(img.alt);
img.parentNode.replaceChild(altText, img)
}
}
function removeTags(parent, tag) {
var es = parent.querySelectorAll(tag);
for (var ix = 0; ix < es.length; ++ix) {
var e = es[ix];
e.remove();
}
}
function hideTags(parent, tag) {
var es = parent.querySelectorAll(tag);
for (var ix = 0; ix < es.length; ++ix) {
var e = es[ix];
e.style.display = "none";
}
}
function removeImageSub(parent) {
removeTags(parent, "svg");
removeTags(parent, "video");
removeTags(parent, "iframe");
hideTags(parent, "iframe");
hideTags(parent, ".c-message_attachment");
var es = parent.children;
for (var ix = 0; ix < es.length; ++ix) {
var e = es[ix];
if (e.style) {
e.style.backgroundImage = "";
if (e.style.backgroundImage != "") {}
}
var backgroundImage = document.defaultView.getComputedStyle(e, "").getPropertyValue("background-image");
if (backgroundImage != "none") {
e.style.backgroundImage = "none";
}
if (e.shadowRoot) {
if (e.shadowRoot.querySelectorAll("img").length) {
removeImageReplaceText(e.shadowRoot.querySelectorAll("img"));
}
}
if (e.children) {
removeImageSub(e);
}
}
}
function replaceLink(parent) {
var as = parent.getElementsByTagName("a");
for (var ix = 0; ix < as.length; ++ix) {
var a = as[ix];
console.log(a.href);
if (a.href && a.href.replaceAll) {
a.href = a.href.replaceAll(/http:\/\/twitter\.com\//, "https://twitter.com/");
a.href = a.href.replaceAll(/http\%3A\%2F\%2Ftwitter\.com\%2F/, "https%3A%2F%2Ftwitter.com%2F");
}
}
}
new MutationObserver(removeImage).observe(document.body, {
childList: true,
subtree: true,
});
removeImage();
})())
javascript: void((function() {function toArray(c) {var a, k;a = new Array;for (k = 0; k < c.length; ++k) a[k] = c[k];return a;}var execFlag = false;function removeImage() {console.log("removeImageSub() called");if (execFlag) {console.log("removeImageSub() cancelled");return;} else {execFlag = true;}console.log("removeImageSub() executing");var images = toArray(document.images);removeImageReplaceText(images);removeImageSub(document);replaceLink(document);execFlag = false;console.log("removeImageSub() executed");}function removeImageReplaceText(imgs) {var img, altText;for (var ix = 0; ix < imgs.length; ++ix) {img = imgs[ix];altText = document.createTextNode(img.alt);img.parentNode.replaceChild(altText, img)}}function removeTags(parent, tag) {var es = parent.querySelectorAll(tag);for (var ix = 0; ix < es.length; ++ix) {var e = es[ix];e.remove();}}function hideTags(parent, tag) {var es = parent.querySelectorAll(tag);for (var ix = 0; ix < es.length; ++ix) {var e = es[ix];e.style.display = "none";}}function removeImageSub(parent) {removeTags(parent, "svg");removeTags(parent, "video");removeTags(parent, "iframe");hideTags(parent, "iframe");hideTags(parent, ".c-message_attachment");var es = parent.children;for (var ix = 0; ix < es.length; ++ix) {var e = es[ix];if (e.style) {e.style.backgroundImage = "";if (e.style.backgroundImage != "") {}}var backgroundImage = document.defaultView.getComputedStyle(e, "").getPropertyValue("background-image");if (backgroundImage != "none") {e.style.backgroundImage = "none";}if (e.shadowRoot) {if (e.shadowRoot.querySelectorAll("img").length) {removeImageReplaceText(e.shadowRoot.querySelectorAll("img"));}}if (e.children) {removeImageSub(e);}}}function replaceLink(parent) {var as = parent.getElementsByTagName("a");for (var ix = 0; ix < as.length; ++ix) {var a = as[ix];console.log(a.href);if (a.href && a.href.replaceAll) {a.href = a.href.replaceAll(/http:\/\/twitter\.com\//, "https://twitter.com/");a.href = a.href.replaceAll(/http\%3A\%2F\%2Ftwitter\.com\%2F/, "https%3A%2F%2Ftwitter.com%2F");}}}new MutationObserver(removeImage).observe(document.body, {childList: true,subtree: true,});removeImage();})())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment