gfs-react-dm
Version:
简化react和redux的繁杂流程,更简单的数据操作管理
89 lines (75 loc) • 2.37 kB
JavaScript
$(function() {
var txtCode = $("#txtCode"),
txtHtml = $("#txtHtml"),
ifrRender = $('#render')[0],
editor, htmlEditor, code, html;
editor = CodeMirror.fromTextArea(txtCode[0], {
lineNumbers: true,
mode: "javascript",
keyMap: "sublime",
autoCloseBrackets: true,
matchBrackets: true,
showCursorWhenSelecting: true,
theme: "monokai",
lint: true,
extraKeys: {
"Ctrl-J": "autocomplete"
},
gutters: ["CodeMirror-lint-markers"]
});
htmlEditor = CodeMirror.fromTextArea(txtHtml[0], {
lineNumbers: true,
mode: "text/html",
keyMap: "sublime",
autoCloseBrackets: true,
matchBrackets: true,
showCursorWhenSelecting: true,
theme: "monokai",
extraKeys: {
"Ctrl-J": "autocomplete"
}
});
function getPramByUrl(name){
var reg = new RegExp(''+name+'=.*','g');
var code = location.search.match(reg);
if(code && code.length>0){
code = code[0].split('&')[0].split('=')[1] ;
}else{
code = '';
if(name =='code'){
code = window.name;
}
}
return decodeURIComponent(decodeURIComponent(code));
}
code = getPramByUrl('code');
html = getCode('html');
code = getCode('script') || (html && code);
function getCode(type) {
var index = code.indexOf('<'+ type + '>');
if (index > -1) {
return code.substring(index + type.length + 2, code.indexOf('</'+ type + '>'));
}
}
function resetCode() {
editor.setValue(code);
htmlEditor.setValue(html || '');
ifrRender.src = "demo.html";
}
resetCode();
$('#mod').text(getPramByUrl('n'));
$('#btnRun').click(function() {
var win = ifrRender.contentWindow;
if(win && win.__st_render){
win.__st_render(htmlEditor.getValue(),editor.getValue());
}
}).next().click(resetCode).next().click(function(){
var code = editor.getValue(),
html = htmlEditor.getValue();
if(html)
{
code += '<html>' + html + '</html><script>' + code + '</script>';
}
window.open('show.html', code);
});
});