From 8feb539a44754acf780e4bda92a6f375b154bf15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mu-An=20=E2=9C=8C=EF=B8=8F=20Chiou?= Date: Wed, 31 Jan 2018 13:50:16 +0800 Subject: [PATCH 1/5] Fix custom elements added via insertAdjacentHTML never were upgraded --- include-fragment-element.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include-fragment-element.js b/include-fragment-element.js index 0f5082e..19581cf 100644 --- a/include-fragment-element.js +++ b/include-fragment-element.js @@ -17,6 +17,10 @@ function handleData(el, data) { if (parentNode) { el.insertAdjacentHTML('afterend', html) parentNode.removeChild(el) + + // Hack to get custom elements in html upgraded + // https://github.com/webcomponents/custom-elements/issues/104 + parentNode.innerHTML = parentNode.innerHTML } }, function() { From 11da43bd4f6156640a225d17b6eb1d60ae249e67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mu-An=20=E2=9C=8C=EF=B8=8F=20Chiou?= Date: Wed, 31 Jan 2018 18:49:24 +0800 Subject: [PATCH 2/5] Move nodes around to avoid deregistering events --- include-fragment-element.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/include-fragment-element.js b/include-fragment-element.js index 19581cf..566f01c 100644 --- a/include-fragment-element.js +++ b/include-fragment-element.js @@ -15,12 +15,14 @@ function handleData(el, data) { function(html) { const parentNode = el.parentNode if (parentNode) { - el.insertAdjacentHTML('afterend', html) - parentNode.removeChild(el) - - // Hack to get custom elements in html upgraded - // https://github.com/webcomponents/custom-elements/issues/104 - parentNode.innerHTML = parentNode.innerHTML + const div = document.createElement('div') + el.insertAdjacentElement('beforebegin', div) + div.innerHTML = html + while (div.childNodes.length > 0) { + div.before(div.childNodes[0]) + } + div.remove() + el.remove() } }, function() { From 196c38f01c1cda33e68e856f23011b2c843dc31a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mu-An=20=E2=9C=8C=EF=B8=8F=20Chiou?= Date: Fri, 2 Feb 2018 08:53:32 +0800 Subject: [PATCH 3/5] Bump version to test this out --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0327fe5..9525f57 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "include-fragment-element", - "version": "4.0.0", + "version": "4.0.1", "main": "dist/index-umd.js", "license": "MIT", "repository": { From f539ce90dc4a8048d259fe14b67e580e8a42c922 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mu-An=20=E2=9C=8C=EF=B8=8F=20Chiou?= Date: Wed, 7 Feb 2018 09:03:21 +0800 Subject: [PATCH 4/5] Use documentfragment and disconnected tree --- include-fragment-element.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include-fragment-element.js b/include-fragment-element.js index 566f01c..f5d57c9 100644 --- a/include-fragment-element.js +++ b/include-fragment-element.js @@ -16,12 +16,12 @@ function handleData(el, data) { const parentNode = el.parentNode if (parentNode) { const div = document.createElement('div') - el.insertAdjacentElement('beforebegin', div) + const fragment = new DocumentFragment() div.innerHTML = html while (div.childNodes.length > 0) { - div.before(div.childNodes[0]) + fragment.appendChild(div.childNodes[0]) } - div.remove() + el.before(fragment) el.remove() } }, From 4831c4b50b3a7d88d38cf46cbf399b273ad29141 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mu-An=20=E2=9C=8C=EF=B8=8F=20Chiou?= Date: Wed, 7 Feb 2018 09:08:53 +0800 Subject: [PATCH 5/5] Older methods --- include-fragment-element.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include-fragment-element.js b/include-fragment-element.js index f5d57c9..ddbce9f 100644 --- a/include-fragment-element.js +++ b/include-fragment-element.js @@ -21,8 +21,8 @@ function handleData(el, data) { while (div.childNodes.length > 0) { fragment.appendChild(div.childNodes[0]) } - el.before(fragment) - el.remove() + parentNode.insertBefore(fragment, el) + parentNode.removeChild(el) } }, function() { pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy