I am Frontend developer
I am Available for Write Frontend posts
No blogs yet.
MacOs better to program and design the web site, if MacOs not disponible, a Linux distro like ElementaryOs is bigger better to Windows to program, but design, if Mac not disponible, Windows is Better on Photoshop like programns: Program and Design On MacOs Program on ElementaryOs Design on Windows
Resolved? if you have not resolved try this < script > ! function ( a ) { "use strict" ; function b ( a,b ) { function c ( a ) { return b.bgcolor&&(a.style.backgroundColor=b.bgcolor),b.width&&(a.style.width=b.width+ "px" ),b.height&&(a.style.height=b.height+ "px" ),b.style&& Object .keys(b.style).forEach( function ( c ) {a.style[c]=b.style[c]}),a} return b=b||{},g(b), Promise .resolve(a).then( function ( a ) { return i(a,b.filter,! 0 )}).then(j).then(k).then(c).then( function ( c ) { return l(c,b.width||q.width(a),b.height||q.height(a))})} function c ( a,b ) { return h(a,b||{}).then( function ( b ) { return b.getContext( "2d" ).getImageData( 0 , 0 ,q.width(a),q.height(a)).data})} function d ( a,b ) { return h(a,b||{}).then( function ( a ) { return a.toDataURL()})} function e ( a,b ) { return b=b||{},h(a,b).then( function ( a ) { return a.toDataURL( "image/jpeg" ,b.quality|| 1 )})} function f ( a,b ) { return h(a,b||{}).then(q.canvasToBlob)} function g ( a ) { "undefined" == typeof a.imagePlaceholder?v.impl.options.imagePlaceholder=u.imagePlaceholder:v.impl.options.imagePlaceholder=a.imagePlaceholder, "undefined" == typeof a.cacheBust?v.impl.options.cacheBust=u.cacheBust:v.impl.options.cacheBust=a.cacheBust} function h ( a,c ) { function d ( a ) { var b= document .createElement( "canvas" ); if (b.width=c.width||q.width(a),b.height=c.height||q.height(a),c.bgcolor){ var d=b.getContext( "2d" );d.fillStyle=c.bgcolor,d.fillRect( 0 , 0 ,b.width,b.height)} return b} return b(a,c).then(q.makeImage).then(q.delay( 100 )).then( function ( b ) { var c=d(a); return c.getContext( "2d" ).drawImage(b, 0 , 0 ),c})} function i ( a,b,c ) { function d ( a ) { return a instanceof HTMLCanvasElement?q.makeImage(a.toDataURL()):a.cloneNode(! 1 )} function e ( a,b,c ) { function d ( a,b,c ) { var d= Promise .resolve(); return b.forEach( function ( b ) {d=d.then( function ( ) { return i(b,c)}).then( function ( b ) {b&&a.appendChild(b)})}),d} var e=a.childNodes; return 0 ===e.length? Promise .resolve(b):d(b,q.asArray(e),c).then( function ( ) { return b})} function f ( a,b ) { function c ( ) { function c ( a,b ) { function c ( a,b ) {q.asArray(a).forEach( function ( c ) {b.setProperty(c,a.getPropertyValue(c),a.getPropertyPriority(c))})}a.cssText?b.cssText=a.cssText:c(a,b)}c( window .getComputedStyle(a),b.style)} function d ( ) { function c ( c ) { function d ( a,b,c ) { function d ( a ) { var b=a.getPropertyValue( "content" ); return a.cssText+ " content: " +b+ ";" } function e ( a ) { function b ( b ) { return b+ ": " +a.getPropertyValue(b)+(a.getPropertyPriority(b)? " !important" : "" )} return q.asArray(a).map(b).join( "; " )+ ";" } var f= "." +a+ ":" +b,g=c.cssText?d(c):e(c); return document .createTextNode(f+ "{" +g+ "}" )} var e= window .getComputedStyle(a,c),f=e.getPropertyValue( "content" ); if ( "" !==f&& "none" !==f){ var g=q.uid();b.className=b.className+ " " +g; var h= document .createElement( "style" );h.appendChild(d(g,c,e)),b.appendChild(h)}}[ ":before" , ":after" ].forEach( function ( a ) {c(a)})} function e ( ) {a instanceof HTMLTextAreaElement&&(b.innerHTML=a.value),a instanceof HTMLInputElement&&b.setAttribute( "value" ,a.value)} function f ( ) {b instanceof SVGElement&&(b.setAttribute( "xmlns" , "http://www.w3.org/2000/svg" ),b instanceof SVGRectElement&&[ "width" , "height" ].forEach( function ( a ) { var c=b.getAttribute(a);c&&b.style.setProperty(a,c)}))} return b instanceof Element? Promise .resolve().then(c).then(d).then(e).then(f).then( function ( ) { return b}):b} return c||!b||b(a)? Promise .resolve(a).then(d).then( function ( c ) { return e(a,c,b)}).then( function ( b ) { return f(a,b)}): Promise .resolve()} function j ( a ) { return s.resolveAll().then( function ( b ) { var c= document .createElement( "style" ); return a.appendChild(c),c.appendChild( document .createTextNode(b)),a})} function k ( a ) { return t.inlineAll(a).then( function ( ) { return a})} function l ( a,b,c ) { return Promise .resolve(a).then( function ( a ) { return a.setAttribute( "xmlns" , "http://www.w3.org/1999/xhtml" ),( new XMLSerializer).serializeToString(a)}).then(q.escapeXhtml).then( function ( a ) { return '<foreignObject x="0" y="0" width="100%" height="100%">' +a+ "</foreignObject>" }).then( function ( a ) { return '<svg xmlns="http://www.w3.org/2000/svg" width="' +b+ '" height="' +c+ '">' +a+ "</svg>" }).then( function ( a ) { return "data:image/svg+xml;charset=utf-8," +a})} function m ( ) { function a ( ) { var a= "application/font-woff" ,b= "image/jpeg" ; return {woff:a,woff2:a,ttf: "application/font-truetype" ,eot: "application/vnd.ms-fontobject" ,png: "image/png" ,jpg:b,jpeg:b,gif: "image/gif" ,tiff: "image/tiff" ,svg: "image/svg+xml" }} function b ( a ) { var b= /\.([^\.\/]*?)$/g .exec(a); return b?b[ 1 ]: "" } function c ( c ) { var d=b(c).toLowerCase(); return a()[d]|| "" } function d ( a ) { return a.search( /^(data:)/ )!== -1 } function e ( a ) { return new Promise ( function ( b ) { for ( var c= window .atob(a.toDataURL().split( "," )[ 1 ]),d=c.length,e= new Uint8Array (d),f= 0 ;f<d;f++)e[f]=c.charCodeAt(f);b( new Blob([e],{type: "image/png" }))})} function f ( a ) { return a.toBlob? new Promise ( function ( b ) {a.toBlob(b)}):e(a)} function g ( a,b ) { var c= document .implementation.createHTMLDocument(),d=c.createElement( "base" );c.head.appendChild(d); var e=c.createElement( "a" ); return c.body.appendChild(e),d.href=b,e.href=a,e.href} function h ( ) { var a= 0 ; return function ( ) { function b ( ) { return ( "0000" +( Math .random()* Math .pow( 36 , 4 )<< 0 ).toString( 36 )).slice( -4 )} return "u" +b()+a++}} function i ( a ) { return new Promise ( function ( b,c ) { var d= new Image;d.onload= function ( ) {b(d)},d.onerror=c,d.src=a})} function j ( a ) { var b= 3e4 ; return v.impl.options.cacheBust&&(a+=( /\?/ .test(a)? "&" : "?" )+( new Date ).getTime()), new Promise ( function ( c ) { function d ( ) { if ( 4 ===g.readyState){ if ( 200 !==g.status) return void (h?c(h):f( "cannot fetch resource: " +a+ ", status: " +g.status)); var b= new FileReader;b.onloadend= function ( ) { var a=b.result.split( /,/ )[ 1 ];c(a)},b.readAsDataURL(g.response)}} function e ( ) {h?c(h):f( "timeout of " +b+ "ms occured while fetching resource: " +a)} function f ( a ) { console .error(a),c( "" )} var g= new XMLHttpRequest;g.onreadystatechange=d,g.ontimeout=e,g.responseType= "blob" ,g.timeout=b,g.open( "GET" ,a,! 0 ),g.send(); var h; if (v.impl.options.imagePlaceholder){ var i=v.impl.options.imagePlaceholder.split( /,/ );i&&i[ 1 ]&&(h=i[ 1 ])}})} function k ( a,b ) { return "data:" +b+ ";base64," +a} function l ( a ) { return a.replace( /([.*+?^${}()|\[\]\/\\])/g , "\\$1" )} function m ( a ) { return function ( b ) { return new Promise ( function ( c ) {setTimeout( function ( ) {c(b)},a)})}} function n ( a ) { for ( var b=[],c=a.length,d= 0 ;d<c;d++)b.push(a[d]); return b} function o ( a ) { return a.replace( /#/g , "%23" ).replace( /\n/g , "%0A" )} function p ( a ) { var b=r(a, "border-left-width" ),c=r(a, "border-right-width" ); return a.scrollWidth+b+c} function q ( a ) { var b=r(a, "border-top-width" ),c=r(a, "border-bottom-width" ); return a.scrollHeight+b+c} function r ( a,b ) { var c= window .getComputedStyle(a).getPropertyValue(b); return parseFloat (c.replace( "px" , "" ))} return { escape :l,parseExtension:b,mimeType:c,dataAsUrl:k,isDataUrl:d,canvasToBlob:f,resolveUrl:g,getAndEncode:j,uid:h(),delay:m,asArray:n,escapeXhtml:o,makeImage:i,width:p,height:q}} function n ( ) { function a ( a ) { return a.search(e)!== -1 } function b ( a ) { for ( var b,c=[]; null !==(b=e.exec(a));)c.push(b[ 1 ]); return c.filter( function ( a ) { return !q.isDataUrl(a)})} function c ( a,b,c,d ) { function e ( a ) { return new RegExp ( "(url\\(['\"]?)(" +q.escape(a)+ ")(['\"]?\\))" , "g" )} return Promise .resolve(b).then( function ( a ) { return c?q.resolveUrl(a,c):a}).then(d||q.getAndEncode).then( function ( a ) { return q.dataAsUrl(a,q.mimeType(b))}).then( function ( c ) { return a.replace(e(b), "$1" +c+ "$3" )})} function d ( d,e,f ) { function g ( ) { return !a(d)} return g()? Promise .resolve(d): Promise .resolve(d).then(b).then( function ( a ) { var b= Promise .resolve(d); return a.forEach( function ( a ) {b=b.then( function ( b ) { return c(b,a,e,f)})}),b})} var e= /url\(['"]?([^'"]+?)['"]?\)/g ; return {inlineAll:d,shouldProcess:a,impl:{readUrls:b,inline:c}}} function o ( ) { function a ( ) { return b( document ).then( function ( a ) { return Promise .all(a.map( function ( a ) { return a.resolve()}))}).then( function ( a ) { return a.join( "\n" )})} function b ( ) { function a ( a ) { return a.filter( function ( a ) { return a.type===CSSRule.FONT_FACE_RULE}).filter( function ( a ) { return r.shouldProcess(a.style.getPropertyValue( "src" ))})} function b ( a ) { var b=[]; return a.forEach( function ( a ) { try {q.asArray(a.cssRules||[]).forEach(b.push.bind(b))} catch (c){ console .log( "Error while reading CSS rules from " +a.href,c.toString())}}),b} function c ( a ) { return {resolve: function ( ) { var b=(a.parentStyleSheet||{}).href; return r.inlineAll(a.cssText,b)},src: function ( ) { return a.style.getPropertyValue( "src" )}}} return Promise .resolve(q.asArray( document .styleSheets)).then(b).then(a).then( function ( a ) { return a.map(c)})} return {resolveAll:a,impl:{readAll:b}}} function p ( ) { function a ( a ) { function b ( b ) { return q.isDataUrl(a.src)? Promise .resolve(): Promise .resolve(a.src).then(b||q.getAndEncode).then( function ( b ) { return q.dataAsUrl(b,q.mimeType(a.src))}).then( function ( b ) { return new Promise ( function ( c,d ) {a.onload=c,a.onerror=d,a.src=b})})} return {inline:b}} function b ( c ) { function d ( a ) { var b=a.style.getPropertyValue( "background" ); return b?r.inlineAll(b).then( function ( b ) {a.style.setProperty( "background" ,b,a.style.getPropertyPriority( "background" ))}).then( function ( ) { return a}): Promise .resolve(a)} return c instanceof Element?d(c).then( function ( ) { return c instanceof HTMLImageElement?a(c).inline(): Promise .all(q.asArray(c.childNodes).map( function ( a ) { return b(a)}))}): Promise .resolve(c)} return {inlineAll:b,impl:{newImage:a}}} var q=m(),r=n(),s=o(),t=p(),u={imagePlaceholder: void 0 ,cacheBust:! 1 },v={toSvg:b,toPng:d,toJpeg:e,toBlob:f,toPixelData:c,impl:{fontFaces:s,images:t,util:q,inliner:r,options:{}}}; "undefined" != typeof module ? module .exports=v:a.domtoimage=v}( this ); document .getElementsByClassName( 'button-to-action' )[ 0 ].addEventListener( 'click' , function ( ) { domtoimage.toPng( document .getElementsByClassName( 'div-youtube-video-embed' )[ 0 ]) .then( function ( dataUrl ) { let img = new Image() img.src = dataUrl document .getElementsByClassName( "div-image-converted" )[ 0 ].appendChild(img) }) }) </ script > https://codepen.io/flourigh/pen/qBWXvPm Is take Screenshot of content in div, but not in youtube video, maybe join this with this https://github.com/ReeganExE/youtube-screenshot