Content-side DOM insertions made compatible with XML document.
This commit is contained in:
parent
dac392deda
commit
5217db79ce
|
@ -87,23 +87,23 @@ var PlaceHolder = (() => {
|
||||||
this.origin = new URL(url).origin;
|
this.origin = new URL(url).origin;
|
||||||
let TYPE = `<${this.policyType.toUpperCase()}>`;
|
let TYPE = `<${this.policyType.toUpperCase()}>`;
|
||||||
|
|
||||||
let replacement = document.createElement("a");
|
let replacement = createHTMLElement("a");
|
||||||
replacement.className = "__NoScript_PlaceHolder__";
|
replacement.className = "__NoScript_PlaceHolder__";
|
||||||
cloneStyle(element, replacement);
|
cloneStyle(element, replacement);
|
||||||
replacement.style.backgroundImage = `url(${ICON_URL})`;
|
replacement.style.backgroundImage = `url(${ICON_URL})`;
|
||||||
replacement.href = url;
|
replacement.href = url;
|
||||||
replacement.title = `${TYPE}@${url}`;
|
replacement.title = `${TYPE}@${url}`;
|
||||||
|
|
||||||
let inner = replacement.appendChild(document.createElement("span"));
|
let inner = replacement.appendChild(createHTMLElement("span"));
|
||||||
inner.className = replacement.className;
|
inner.className = replacement.className;
|
||||||
|
|
||||||
let button = inner.appendChild(document.createElement("button"));
|
let button = inner.appendChild(createHTMLElement("button"));
|
||||||
button.className = replacement.className;
|
button.className = replacement.className;
|
||||||
button.setAttribute("aria-label", button.title = _("Close"));
|
button.setAttribute("aria-label", button.title = _("Close"));
|
||||||
button.value = "close";
|
button.value = "close";
|
||||||
button.textContent = "🗙";
|
button.textContent = "🗙";
|
||||||
|
|
||||||
let description = inner.appendChild(document.createElement("span"));
|
let description = inner.appendChild(createHTMLElement("span"));
|
||||||
description.textContent = `${TYPE}@${this.origin}`;
|
description.textContent = `${TYPE}@${this.origin}`;
|
||||||
|
|
||||||
replacement._placeHolderObj = this;
|
replacement._placeHolderObj = this;
|
||||||
|
|
|
@ -2,6 +2,10 @@
|
||||||
|
|
||||||
// debug = () => {}; // XPI_ONLY
|
// debug = () => {}; // XPI_ONLY
|
||||||
|
|
||||||
|
function createHTMLElement(name) {
|
||||||
|
return document.createElementNS("http://www.w3.org/1999/xhtml", name);
|
||||||
|
}
|
||||||
|
|
||||||
var _ = browser.i18n.getMessage;
|
var _ = browser.i18n.getMessage;
|
||||||
|
|
||||||
var canScript = true;
|
var canScript = true;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
function onScriptDisabled() {
|
function onScriptDisabled() {
|
||||||
for (let noscript of document.querySelectorAll("noscript")) {
|
for (let noscript of document.querySelectorAll("noscript")) {
|
||||||
// force show NOSCRIPT elements content
|
// force show NOSCRIPT elements content
|
||||||
let replacement = document.createElement("no-script");
|
let replacement = createHTMLElement("no-script");
|
||||||
replacement.innerHTML = noscript.innerHTML;
|
replacement.innerHTML = noscript.innerHTML;
|
||||||
noscript.parentNode.replaceChild(replacement, noscript);
|
noscript.parentNode.replaceChild(replacement, noscript);
|
||||||
// emulate meta-refresh
|
// emulate meta-refresh
|
||||||
|
|
Loading…
Reference in New Issue