@@ -61,15 +61,36 @@ const setValue = (el, value) => {
6161 else if ( el . tagName === 'IFRAME' )
6262 el . srcdoc = value ;
6363
64- else if ( el . tagName === 'DIV' ) {
65- if ( el . hasAttribute ( "value" ) ) {
66- el . setAttribute ( "value" , value ) ;
64+ else if ( el . tagName === 'SCRIPT' )
65+ setScript ( el , value ) ;
66+
67+ else {
68+ if ( el . hasAttribute ( 'contenteditable' ) && el == document . activeElement ) return ;
69+ if ( el . tagName === 'DIV' ) {
70+ if ( ! el . classList . contains ( 'domEditor' ) || ! el . hasAttribute ( 'get-value' ) || ! el . hasAttribute ( 'get-value-closest' ) )
71+ return
6772 }
6873
69- if ( el . classList . contains ( 'domEditor' ) || el . hasAttribute ( 'get-value' ) || el . hasAttribute ( 'get-value-closest' ) ) {
70- if ( el . getAttribute ( 'data-domEditor' ) == "replace" ) {
71- let newElement = document . createElement ( "div" ) ;
72- newElement . innerHTML = value ;
74+ if ( valueType == 'string' || valueType == 'text' )
75+ el . textContent = value ;
76+ else {
77+ let newElement = document . createElement ( "div" ) ;
78+ newElement . innerHTML = value ;
79+ setPass ( newElement )
80+
81+ let CoCreateJS = newElement . querySelector ( 'script[src*="CoCreate.js"], script[src*="CoCreate.min.js"]' )
82+ if ( CoCreateJS )
83+ CoCreateJS . remove ( )
84+
85+ let CoCreateCSS = newElement . querySelector ( 'link[href*="CoCreate.css"], link[href*="CoCreate.min.css"]' )
86+ if ( CoCreateCSS )
87+ CoCreateCSS . remove ( )
88+
89+ let css = newElement . querySelector ( 'link[collection], link[document]' )
90+ if ( css )
91+ css . remove ( )
92+
93+ if ( el . getAttribute ( 'domEditor' ) == "replace" ) {
7394 let parentNode = el . parentNode ;
7495 if ( parentNode ) {
7596 if ( newElement . children [ 0 ] ) {
@@ -79,29 +100,16 @@ const setValue = (el, value) => {
79100 parentNode . replaceChild ( newElement , el ) ;
80101 }
81102 }
82- }
83- else {
84- if ( valueType == 'string' || valueType == 'text' )
85- el . textContent = value ;
86- else
87- el . innerHTML = value ;
103+ } else {
104+ el . innerHTML = newElement . innerHTML ;
88105 }
89106 }
90- }
91107
92- else if ( el . tagName === 'SCRIPT' ) {
93- setScript ( el , value ) ;
94- }
95- else {
96- if ( el . hasAttribute ( 'contenteditable' ) && el == document . activeElement ) return ;
97- if ( valueType == 'string' || valueType == 'text' )
98- el . textContent = value ;
99- else
100- el . innerHTML = value ;
101108 if ( el . hasAttribute ( "value" ) ) {
102109 el . setAttribute ( "value" , value ) ;
103110 }
104111 }
112+
105113 if ( el . getAttribute ( 'contenteditable' ) )
106114 dispatchEvents ( el ) ;
107115
@@ -117,6 +125,14 @@ const setValue = (el, value) => {
117125 }
118126} ;
119127
128+ function setPass ( el ) {
129+ if ( CoCreate . pass ) {
130+ let passElements = el . querySelectorAll ( '[pass_id]' ) ;
131+ if ( passElements )
132+ CoCreate . pass . initElements ( passElements )
133+ }
134+ }
135+
120136function setScript ( script , value ) {
121137 let newScript = document . createElement ( 'script' ) ;
122138 newScript . attributes = script . attributes ;
0 commit comments