Skip to content

Instantly share code, notes, and snippets.

@ElijahLynn
Last active August 29, 2015 14:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ElijahLynn/6cb1e6e26011dba1b7d3 to your computer and use it in GitHub Desktop.
Save ElijahLynn/6cb1e6e26011dba1b7d3 to your computer and use it in GitHub Desktop.
Line 15-22
insert: function(content) {
content = this.prepareContent(content);
if (CKEDITOR.env.webkit || CKEDITOR.env.chrome || CKEDITOR.env.opera || CKEDITOR.env.safari) {
// Works around a WebKit bug which removes wrapper elements.
// @see https://drupal.org/node/1927968
var tmp = new CKEDITOR.dom.element('div'), children, skip = 0, item;
tmp.setHtml(content);
children = tmp.getChildren();
skip = 0;
while (children.count() > skip) {
item = children.getItem(skip);
switch(item.type) {
case 1:
CKEDITOR.instances[this.field].insertElement(item);
// Widget initialization support.
// @see http://stackoverflow.com/a/20245520/292408
var widgets = CKEDITOR.instances[this.field].widgets.registered;
for (var widgetName in widgets) {
if (widgets.hasOwnProperty(widgetName)) {
CKEDITOR.instances[this.field].widgets.initOn(item, widgetName);
}
}
break;
case 3:
CKEDITOR.instances[this.field].insertText(item.getText());
skip++;
break;
case 8:
CKEDITOR.instances[this.field].insertHtml(item.getOuterHtml());
skip++;
break;
}
}
}
else {
CKEDITOR.instances[this.field].insertHtml(content);
}
},
@ElijahLynn
Copy link
Author

var widgetName = CKEDITOR.instances[this.field].widgets.registered[0]; // not really index 0 as it is an object with string as key.
CKEDITOR.instances[this.field].widgets.initOn( item, 'embed-external-widget');

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment