Better handling 0 width / 0 height media placeholders.

This commit is contained in:
hackademix 2020-11-19 23:56:26 +01:00
parent 3ec0b28981
commit 83ed39c607
1 changed files with 12 additions and 0 deletions

View File

@ -55,6 +55,11 @@ var PlaceHolder = (() => {
for (let p of props) { for (let p of props) {
destStyle[p] = srcStyle[p]; destStyle[p] = srcStyle[p];
} }
for (let size of ["width", "height"]) {
if (/^0(?:\D|$)/.test(destStyle[size])) {
destStyle[size] = "";
}
}
if (src.offsetTop < 0 && src.offsetTop <= (-src.offsetHeight)) { if (src.offsetTop < 0 && src.offsetTop <= (-src.offsetHeight)) {
destStyle.top = "0"; // fixes video player off-display position on Youtube destStyle.top = "0"; // fixes video player off-display position on Youtube
} }
@ -83,6 +88,10 @@ var PlaceHolder = (() => {
replacement = e; replacement = e;
break; break;
} }
if (replacement = e._placeHolderReplacement) {
ph = replacement._placeHolderObj;
break;
}
} }
if (ph) { if (ph) {
ev.preventDefault(); ev.preventDefault();
@ -159,6 +168,9 @@ var PlaceHolder = (() => {
replacement._placeHolderObj = this; replacement._placeHolderObj = this;
replacement._placeHolderElement = element; replacement._placeHolderElement = element;
for (let e of replacement.querySelectorAll("*")) {
e._placeHolderReplacement = replacement;
}
element.replaceWith(replacement); element.replaceWith(replacement);