Files
cm-web-legacy/public/assets/adm/js/trevor/sir-trevor-iframe.js
2020-06-10 06:19:03 +09:00

51 lines
1.5 KiB
JavaScript
Executable File

SirTrevor.Blocks.Iframe = (function() {
return SirTrevor.Block.extend({
regex_src : /(?:<iframe)(?:.+)(?:src="){1}([^"].+?)(?:")(?:.+)(?:<\/iframe>)/i,
regex_width : /(?:<iframe)(?:.+)(?:width="){1}([^"].+?)(?:")(?:.+)(?:<\/iframe>)/i,
regex_height : /(?:<iframe)(?:.+)(?:height="){1}([^"].+?)(?:")(?:.+)(?:<\/iframe>)/i,
type : 'iframe',
icon_name : 'iframe',
title : function() {
return "Iframe";
},
toolbarEnabled : true,
droppable : false,
pastable : true,
paste_options : {
html : '<input type="text" placeholder="<iframe>" class="st-block__paste-input st-paste-block">'
},
onContentPasted : function(event) {
this.loading();
obj = {};
val = $(event.target).val();
match_src = this.regex_src.exec(val);
if (match_src !== null && !_.isUndefined(match_src[1])) {
obj.src = match_src[1];
match_width = val.match(this.regex_width);
if (match_width !== null && !_.isUndefined(match_width[1])) {
obj.width = match_width[1];
}
match_height = val.match(this.regex_height);
if (match_height !== null && !_.isUndefined(match_height[1])) {
obj.height = match_height[1];
}
this.setAndLoadData(obj);
}
},
uploadable : false,
formattable : false,
loadData : function(data) {
data.width = (typeof data.width == undefined || !data.width) ? '100%' : data.width;
data.height = (typeof data.height == undefined || !data.height) ? '100%' : data.height;
this.$inner.prepend(
$('<iframe>')
.attr('src', data.src)
.attr('class', 'st-block-embed')
.attr('width', data.width)
.attr('height', data.height)
);
this.ready();
},
});
})();