|
@@ -6,39 +6,100 @@ function render_html(name = '') {
|
|
|
if(document.getElementById(name + '_' + String(num))) {
|
|
if(document.getElementById(name + '_' + String(num))) {
|
|
|
data = document.getElementById(name + '_' + String(num)).innerHTML;
|
|
data = document.getElementById(name + '_' + String(num)).innerHTML;
|
|
|
|
|
|
|
|
- var t_data = ['b', 'i', 's', 'del', 'strong', 'bold', 'em', 'sub', 'sup']
|
|
|
|
|
|
|
+ var src_list = ['www.youtube.com', 'www.google.com', 'play-tv.kakao.com'];
|
|
|
|
|
+ var t_data = [
|
|
|
|
|
+ 'b', 'i', 's', 'del', 'strong', 'bold', 'em', 'sub', 'sup',
|
|
|
|
|
+ 'div', 'span',
|
|
|
|
|
+ 'a',
|
|
|
|
|
+ 'iframe',
|
|
|
|
|
+ 'video'
|
|
|
|
|
+ ];
|
|
|
for(var key in t_data) {
|
|
for(var key in t_data) {
|
|
|
- var patt = new RegExp('<' + t_data[key] + '>((?:(?!<\/' + t_data[key] + '>).)*)<\/' + t_data[key] + '>', 'ig');
|
|
|
|
|
- data = data.replace(patt, '<' + t_data[key] + '>$1</' + t_data[key] + '>');
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ patt = new RegExp(
|
|
|
|
|
+ '<' + t_data[key] + '( (?:(?:(?!>).)+))?>((?:(?!<\/' + t_data[key] + '>).)*)<\/' + t_data[key] + '>',
|
|
|
|
|
+ 'ig'
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ data = data.replace(patt, function(full, in_data, in_data_2) {
|
|
|
|
|
+ if(['b', 'i', 's', 'del', 'strong', 'bold', 'em', 'sub', 'sup'].includes(t_data[key])) {
|
|
|
|
|
+ return '<' + t_data[key] + '>' + in_data_2 + '</' + t_data[key] + '>'
|
|
|
|
|
+ } else if(t_data[key] === 'div' || t_data[key] === 'span') {
|
|
|
|
|
+ var style_data = in_data.match(/ style=['"]([^'"]*)['"]/);
|
|
|
|
|
+ if(style_data) {
|
|
|
|
|
+ style_data = style_data[1].replace(/position/ig, '');
|
|
|
|
|
+ } else {
|
|
|
|
|
+ style_data = '';
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- var src_list = {
|
|
|
|
|
- 'www.youtube.com' : '1',
|
|
|
|
|
- 'www.google.com' : '1'
|
|
|
|
|
- }
|
|
|
|
|
- data = data.replace(/<iframe( (?:(?:(?!>).)+))><\/iframe>/ig, function(full, in_data) {
|
|
|
|
|
- var src_data = in_data.match(/ src=['"]https:\/\/([^/'"]+)(?:[^'"]+)['"](?: |$)/);
|
|
|
|
|
- if(src_data) {
|
|
|
|
|
- if(src_list[src_data[1]]) {
|
|
|
|
|
- return '<iframe' + in_data + '></iframe>';
|
|
|
|
|
|
|
+ return '<' + t_data[key] + ' style="' + style_data + '">' + in_data_2 + '</' + t_data[key] + '>';
|
|
|
|
|
+ } else if(t_data[key] === 'a') {
|
|
|
|
|
+ var link_data = in_data.match(/ href=['"]([^'"]*)['"]/);
|
|
|
|
|
+ if(link_data) {
|
|
|
|
|
+ link_data = link_data[1].replace(/^javascript:/ig, '');
|
|
|
|
|
+ } else {
|
|
|
|
|
+ link_data = '';
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return '<' + t_data[key] + ' id="out_link" href="' + link_data + '">' + in_data_2 + '</' + t_data[key] + '>';
|
|
|
|
|
+ } else if(t_data[key] === 'iframe') {
|
|
|
|
|
+ var src_data = in_data.match(/ src=['"]([^'"]*)['"]/);
|
|
|
|
|
+ if(src_data) {
|
|
|
|
|
+ src_data = src_data[1];
|
|
|
|
|
+
|
|
|
|
|
+ var src_check = src_data.match(/^http(?:s)?:\/\/([^/]+)/);
|
|
|
|
|
+ if(src_check) {
|
|
|
|
|
+ if(!src_list.includes(src_check[1])) {
|
|
|
|
|
+ src_data = '';
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ src_data = '';
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ src_data = '';
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ var width_data = in_data.match(/ width=['"]([^'"]*)['"]/);
|
|
|
|
|
+ if(width_data) {
|
|
|
|
|
+ width_data = width_data[1];
|
|
|
|
|
+ } else {
|
|
|
|
|
+ width_data = '';
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ var height_data = in_data.match(/ height=['"]([^'"]*)['"]/);
|
|
|
|
|
+ if(height_data) {
|
|
|
|
|
+ height_data = height_data[1];
|
|
|
|
|
+ } else {
|
|
|
|
|
+ height_data = '';
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return '<' + t_data[key] + ' src="' + src_data + '" width="' + width_data + '" height="' + height_data + '" allowfullscreen frameborder="0">' + in_data_2 + '</' + t_data[key] + '>';
|
|
|
} else {
|
|
} else {
|
|
|
- return full;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ var src_data = in_data.match(/ src=['"]([^'"]*)['"]/);
|
|
|
|
|
+ if(src_data) {
|
|
|
|
|
+ src_data = src_data[1];
|
|
|
|
|
+ } else {
|
|
|
|
|
+ src_data = '';
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- t_data = ['div', 'span']
|
|
|
|
|
- for(var key in t_data) {
|
|
|
|
|
- patt = new RegExp('<' + t_data[key] + ' style=["\']((?:(?!["\']).)+)["\']>((?:(?!<\/' + t_data[key] + '>).)*)<\/' + t_data[key] + '>', 'ig');
|
|
|
|
|
- data = data.replace(patt, function(full, in_data, in_data_2) {
|
|
|
|
|
- return '<' + t_data[key] + ' style="' + in_data.replace(/position/ig, '') + '">' + in_data_2 + '</' + t_data[key] + '>'
|
|
|
|
|
|
|
+ var width_data = in_data.match(/ width=['"]([^'"]*)['"]/);
|
|
|
|
|
+ if(width_data) {
|
|
|
|
|
+ width_data = width_data[1];
|
|
|
|
|
+ } else {
|
|
|
|
|
+ width_data = '';
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ var height_data = in_data.match(/ height=['"]([^'"]*)['"]/);
|
|
|
|
|
+ if(height_data) {
|
|
|
|
|
+ height_data = height_data[1];
|
|
|
|
|
+ } else {
|
|
|
|
|
+ height_data = '';
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return '<' + t_data[key] + ' src="' + src_data + '" width="' + width_data + '" height="' + height_data + '">' + in_data_2 + '</' + t_data[key] + '>';
|
|
|
|
|
+ }
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- data = data.replace(/<a href=["\']((?:(?!["\']).)+)["\']>((?:(?!<\/a>).)*)<\/a>/ig, function(full, in_data, in_data_2) {
|
|
|
|
|
- return '<a id="out_link" href="' + in_data.replace(/^javascript/ig, '') + '">' + in_data_2 + '</a>'
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
document.getElementById(name + '_' + String(num)).innerHTML = data;
|
|
document.getElementById(name + '_' + String(num)).innerHTML = data;
|
|
|
} else {
|
|
} else {
|
|
|
break;
|
|
break;
|