@@ -37,22 +37,27 @@ Vvveb.Components.extend("_base", "embeds/embed", {
37
37
htmlAttr : "data-url" ,
38
38
inputtype : TextInput ,
39
39
onChange : function ( node , value ) {
40
- let element = node [ 0 ] ;
41
-
42
- element . innerHTML = `<div class="alert alert-light d-flex justify-content-center">
40
+ node . innerHTML = `<div class="alert alert-light d-flex justify-content-center">
43
41
<div class="spinner-border m-5" role="status">
44
42
<span class="visually-hidden">Loading...</span>
45
43
</div>
46
44
</div>` ;
47
45
48
46
getOembed ( value ) . then ( response => {
49
- element . innerHTML = response . html ;
47
+ node . innerHTML = response . html ;
50
48
let containerW = node . offsetWidth ;
51
- let iframe = element . querySelector ( "iframe" ) ;
52
- let ratio = containerW / iframe . offsetWidth ;
53
-
54
- iframe . setAttribute ( "width" , ( width * ratio ) ) ;
55
- iframe . setAttribute ( "height" , ( height * ratio ) ) ;
49
+ let iframe = node . querySelector ( "iframe" ) ;
50
+ if ( iframe ) {
51
+ let ratio = containerW / iframe . offsetWidth ;
52
+ iframe . setAttribute ( "width" , ( width * ratio ) ) ;
53
+ iframe . setAttribute ( "height" , ( height * ratio ) ) ;
54
+ }
55
+
56
+ let arr = node . querySelectorAll ( 'script' ) . forEach ( script => {
57
+ let newScript = Vvveb . Builder . frameDoc . createElement ( "script" ) ;
58
+ newScript . src = script . src ;
59
+ script . replaceWith ( newScript ) ;
60
+ } ) ;
56
61
57
62
} ) . catch ( error => console . log ( error ) ) ;
58
63
0 commit comments