Blame view
resources/js/common/services/mediaEmbedder.js
1.4 KB
e77200db5 Initial commit |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
angular.module('mediaEmbedder', []) .service('mediaEmbedder', [function () { function embedHtml(payload, targetEl) { if (/^<script /i.test(payload)) { return embedScript(payload, targetEl); } angular.element(targetEl).html(payload); if (window.FB) { FB.XFBML.parse(angular.element(targetEl)[0]); } if (window.instgrm) { instgrm.Embeds.process(); } } function embedScript(payload, targetEl) { var script = document.createElement('script'); angular.forEach($(payload)[0].attributes, function (attr) { script.setAttribute(attr.name, attr.value); }); angular.element(targetEl).html(''); angular.element(targetEl).append(script); } function embedImage(imageUrl, targetEl) { angular.element(targetEl).html('<img src="' + imageUrl + '">'); } return { embed: function (media, targetEl) { switch (media.payloadType) { case 'html': embedHtml(media.payload, targetEl); break; case 'image': embedImage(media.payload, targetEl); break; default: console.error('mediaEmbedder: ' + media.payloadType + ' type is not configured.'); break; } }, }; }]); |