ScriptLib.js 1.94 KB
var scriptCodeText = "";
top.scriptCodeFun = function(){
	return scriptCodeText;
};

function ScriptLib() {
	this.pageUrl = "/mobilemode/scriptlib/ScriptCenter.jsp";
}
ScriptLib.windows = {};
ScriptLib.prototype.addScriptToField = function (selector, callbackFn) {
	var $target = $(selector),
		v = $target.val(),
		id = $target[0].id;
	var win = ScriptLib.windows[id];

	if (win) {
		return win.restore();
	}

	ScriptLib.windows[id] = this.openWindow(id, v, function (result) {
		var scriptCode = result.scriptCode;
		$target[0].value = scriptCode;
		if (typeof (callbackFn) == "function") {
			callbackFn.call(this, scriptCode);
		}
		scriptCode = $.trim(scriptCode);
		$target.parents(".click-control").toggleClass("active", !!scriptCode);
	});
};

ScriptLib.prototype.openWindow = function (id, value, callbackFn) {
	var dataModel = top.require && top.require("dataModel") || {},
		mec = top.require && top.require("mec") || {};

	var mecHandlers = mec.getSortedMecHandlers();
	scriptCodeText = value;
	var url = this.pageUrl + "?appid=" + dataModel.get("appid") + "&appHomepageId=" + dataModel.get("appHomepageId") + "&mecHandlers=" + encodeURI(JSON.stringify({ data: mecHandlers }));
	var $body = $(top.document.body);
	var dlg = top.createTopDialog();//获取Dialog对象
	var width = $body.width() * 0.9;

	dlg.Model = true;
	dlg.normalDialog = false;
	dlg.Width = width > 1250 ? 1250 : width; //定义长度
	dlg.Height = $body.height() * 0.8;
	dlg.URL = url;
	dlg.btn = false;
	dlg.maxmin = true;
	dlg.Title = SystemEnv.getHtmlNoteName(4813);  //函数库
	dlg.show();
	dlg.hookFn = function (result) {
		callbackFn.call(this, result);
		delete ScriptLib.windows[id];
	};
	dlg.end = function () {
		delete ScriptLib.windows[id];
	}
	return dlg;
};

function SL_ChangeStyle(el, code) {
	code = $.trim(code);
	$(el).toggleClass("active", !!code);
}

function SL_AddScriptToField(selector, callbackFn) {
	var sl = new ScriptLib();
	sl.addScriptToField(selector, callbackFn);
}