diff --git a/frame.js b/frame.js index 4c502296..fcdde55c 100644 --- a/frame.js +++ b/frame.js @@ -1,4 +1,3 @@ -_can_name = "/frame.js" Volcanos("onengine", {help: "搜索引擎", list: [], _init: function(can, meta, list, cb, target) { can.run = function(event, cmds, cb) { var msg = can.request(event); cmds = cmds||[] return (can.onengine[cmds[0]]||can.onengine._remote)(event, can, msg, can, cmds, cb) @@ -173,7 +172,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, function add(item, next) { item = can.base.isString(item)? {type: html.TEXT, name: item}: item, item.type != html.BUTTON && index++ return Volcanos(item.name, {_follow: can.core.Keys(can._follow, item.name), _target: can.onappend.input(can, item, args[index]||opts[item.name], option||can._option), - _option: can._option, _action: can._action, _output: can._output, _status: can._status, + _option: option||can._option, _action: can._action, _output: can._output, _status: can._status, Option: can.Option, Action: can.Action, Status: can.Status, CloneField: can.Clone, CloneInput: function() { can.onmotion.focus(can, add(item)._target) }, }, [item.display, chat.PLUGIN_INPUT_JS], function(input) { input.Conf(item) @@ -350,7 +349,6 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, } function run(cmds) { var msg = can.sup.request(event, line, can.Option()) - return can.run(event, cmds, null, true) return can.run(event, cmds, function(msg) { can.run() }, true) } diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js index 3ae1edef..fe2926f3 100644 --- a/plugin/local/code/inner.js +++ b/plugin/local/code/inner.js @@ -82,11 +82,14 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target _toolkit: function(can, target) { can.ui.toolkit = can.onappend.field(can, "toolkit", {}, can._output) }, - _session: function(can, msg) { can.user.isMobile || can.onimport.sess(can, "", function() { can.onimport.sess(can, { - plug: can.core.Split(msg.OptionOrSearch("plug")).reverse(), - exts: can.core.Split(msg.OptionOrSearch("exts")).reverse(), - tabs: can.core.Split(msg.OptionOrSearch("tabs")), - }) }) }, + _session: function(can, msg) { + if (can.user.isMobile || !can.page.ClassList.has(can, can._fields, chat.PLUGIN)) { return } + can.onimport.sess(can, "", function() { can.onimport.sess(can, { + plug: can.core.Split(msg.OptionOrSearch("plug")).reverse(), + exts: can.core.Split(msg.OptionOrSearch("exts")).reverse(), + tabs: can.core.Split(msg.OptionOrSearch("tabs")), + }) }) + }, _keydown: function(can) { can.onkeymap._build(can) can.user.mod.isCmd && can.onengine.listen(can, chat.ONKEYDOWN, function(event) { can._key_list = can.onkeymap._parse(event, can, "plugin", can._key_list, can.ui.content) @@ -145,16 +148,15 @@ Volcanos("onimport", {help: "导入数据", _init: function(can, msg, cb, target sub.page.style(sub, sub._output, html.MAX_HEIGHT, sub.ConfHeight()) sub.page.style(sub, sub._output, html.MAX_WIDTH, sub.ConfWidth()) sub.select = function() { return sub._legend.click(), sub } + sub.onappend._option(sub, [{type: html.BUTTON, name: "close"}]) - // var status = can.user.mod.isCmd? can._status: can.ui.toolkit.status - var status = can._status - status.appendChild(sub._legend), sub._legend.onclick = function(event) { - if (can.page.Select(can, status, ice.PT+html.SELECT)[0] == event.target) { + can._status.appendChild(sub._legend), sub._legend.onclick = function(event) { + if (can.page.Select(can, can._status, ice.PT+html.SELECT)[0] == event.target) { can.page.ClassList.del(can, event.target, html.SELECT) can.page.ClassList.del(can, sub._target, html.SELECT) return } - can.onmotion.select(can, status, html.LEGEND, event.target) + can.onmotion.select(can, can._status, html.LEGEND, event.target) can.onmotion.select(can, can.ui.toolkit.output, html.FIELDSET, sub._target) can.onmotion.focus(can, can.page.Select(can, sub._option, html.OPTION_ARGS)[0]) }, can.base.isFunc(cb) && cb(sub) @@ -258,8 +260,10 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"], can.onaction.appendLine(can, item) }), can.onaction.selectLine(null, can, msg.Option(nfs.LINE)), can.base.isFunc(cb) && cb() msg.Option(nfs.FILE).indexOf("website/") == 0 && can.onaction["展示"]({}, can) - p && p.render && can.onaction["展示"]({}, can) - p && p.engine && can.onaction["执行"]({}, can) + if (can.page.ClassList.has(can, can._fields, chat.PLUGIN)) { + p && p.render && can.onaction["展示"]({}, can) + p && p.engine && can.onaction["执行"]({}, can) + } } var p = can.onsyntax[can.parse]; !p? can.run({}, [ctx.ACTION, mdb.PLUGIN, can.parse, msg.Option(nfs.FILE), msg.Option(nfs.PATH)], function(msg) { diff --git a/proto.js b/proto.js index b5ac5f02..ac708f1e 100644 --- a/proto.js +++ b/proto.js @@ -407,10 +407,12 @@ try { if (global) { global.svg = svg, global.html = html, global.lang = lang global.shy = shy, global.Volcanos = Volcanos - Volcanos.meta._load = function(url, cb) { _can_name = url - switch (url.split("?")[0].split(ice.PT).pop().toLowerCase()) { - case nfs.JS: require(url), cb(Volcanos.meta.cache[_can_name]); break - } + Volcanos.meta._load = function(url, cb) { + setTimeout(function() { if (Volcanos.meta.cache[url]) { return cb(Volcanos.meta.cache[url]) } + switch (url.split("?")[0].split(ice.PT).pop().toLowerCase()) { + case nfs.JS: require(_can_name = url), cb(Volcanos.meta.cache[url]); break + } + }, 100) } Volcanos.meta._load(global.plugin, function(cache) {