@@ -61,15 +61,36 @@ const setValue = (el, value) => {
61
61
else if ( el . tagName === 'IFRAME' )
62
62
el . srcdoc = value ;
63
63
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
67
72
}
68
73
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" ) {
73
94
let parentNode = el . parentNode ;
74
95
if ( parentNode ) {
75
96
if ( newElement . children [ 0 ] ) {
@@ -79,29 +100,16 @@ const setValue = (el, value) => {
79
100
parentNode . replaceChild ( newElement , el ) ;
80
101
}
81
102
}
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 ;
88
105
}
89
106
}
90
- }
91
107
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 ;
101
108
if ( el . hasAttribute ( "value" ) ) {
102
109
el . setAttribute ( "value" , value ) ;
103
110
}
104
111
}
112
+
105
113
if ( el . getAttribute ( 'contenteditable' ) )
106
114
dispatchEvents ( el ) ;
107
115
@@ -117,6 +125,14 @@ const setValue = (el, value) => {
117
125
}
118
126
} ;
119
127
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
+
120
136
function setScript ( script , value ) {
121
137
let newScript = document . createElement ( 'script' ) ;
122
138
newScript . attributes = script . attributes ;
0 commit comments