TinyMCE - instagram
by Majo Chiou
HTML
<script src="//cdn.tinymce.com/4/tinymce.min.js"></script>
<div class="editor-container">
<textarea>Easy (and free!) You should check out our premium features.</textarea>
</div>
CSS
.editor-container {
width: 80%;
margin: 0 auto;
}
JavaScript
(function() {
var editor_id = "";
tinymce.PluginManager.add('instagram', function(editor, url) {
// Add a button that opens a window
editor.addButton('instagram', {
text: 'Instagram',
icon: false,
onclick: function() {
// Open window
editor.windowManager.open({
title: 'Instagram Embed',
body: [
{ type: 'textbox',
size: 40,
height: '100px',
name: 'instagram',
label: 'instagram'
}
],
onsubmit: function(e) {
// Insert content when the window form is submitted
console.log(e.data.instagram);
var embedCode = e.data.instagram;
var script = embedCode.match(/<script.*<\/script>/)[0];
var scriptSrc = script.match(/".*\.js/)[0].split("\"")[1];
console.log(script, scriptSrc);
var sc = document.createElement("script");
sc.setAttribute("src", scriptSrc);
sc.setAttribute("type", "text/javascript");
var iframe = document.getElementById(editor_id + "_ifr");
var iframeHead = iframe.contentWindow.document.getElementsByTagName('head')[0];
tinyMCE.activeEditor.insertContent(e.data.instagram);
iframeHead.appendChild(sc);
setTimeout(function() {
iframe.contentWindow.instgrm.Embeds.process();
}, 1000)
// editor.insertContent('Title: ' + e.data.title);
}
});
}
});
});
tinymce.init({
...