فهرست منبع

fixed issue if doctype is missing in the saved page

Former-commit-id: 3b2bf31de4ef543e2c640ba45aeed0bd945a6eee
Gildas 6 سال پیش
والد
کامیت
4280214fa4
1فایلهای تغییر یافته به همراه11 افزوده شده و 7 حذف شده
  1. 11 7
      extension/ui/content/content-ui-editor-web.js

+ 11 - 7
extension/ui/content/content-ui-editor-web.js

@@ -56,15 +56,19 @@
 		if (message.method == "init") {
 			await initConstants();
 			const contentDocument = (new DOMParser()).parseFromString(message.content, "text/html");
-			if (document.doctype) {
-				document.replaceChild(contentDocument.doctype, document.doctype);
+			if (contentDocument.doctype) {
+				if (document.doctype) {
+					document.replaceChild(contentDocument.doctype, document.doctype);
+				} else {
+					document.insertBefore(contentDocument.doctype, document.documentElement);
+				}
+				contentDocument.querySelectorAll("noscript").forEach(element => {
+					element.setAttribute(DISABLED_NOSCRIPT_ATTRIBUTE_NAME, element.innerHTML);
+					element.textContent = "";
+				});
 			} else {
-				document.insertBefore(contentDocument.doctype, document.documentElement);
+				document.doctype.remove();
 			}
-			contentDocument.querySelectorAll("noscript").forEach(element => {
-				element.setAttribute(DISABLED_NOSCRIPT_ATTRIBUTE_NAME, element.innerHTML);
-				element.textContent = "";
-			});
 			document.replaceChild(contentDocument.documentElement, document.documentElement);
 			deserializeShadowRoots(document);
 			window.parent.postMessage(JSON.stringify({ "method": "setMetadata", title: document.title, icon: document.querySelector("link[rel*=icon]").href }), "*");