js 动态调用方法的函数:
// 添加指定位置的js(url eg. js/my.js)
function addScript(url) {
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', url);
document.getElementsByTagName('head')[0].appendChild(script);
}
// 调用指定名称的方法,有一个入参
function call(funcName, par) {
var target = funcName + "('" + par + "')";
var res = eval('(' + target + ')'); // 如果返回值是json对象,必须按照此格式,多加一层括号,因为json外部是{}包住,会被js误认为是执行脚本
return res;
}
$(function(){
$("#btnTest").click(function () {
var res = call('fun1', 'myApp');
if (res == null) {
alert("获取数据异常");
return;
}
if (res.code == "200") {
if (!res.content) {
alert("无信息");
return;
}
alert(res.content);
}
else
alert(res.message);
});
});
如,类似有如下 my.js:
function fun1(appName) {
var url = "http://127.0.0.1:12345/api/version?app=" + appName+ "";
//jQuery.support.cors = true;
var obj = { code: "300", message: "", content: "" };
$.ajax({
url: url,
timeout: 2000,
type: "get",
dataType: "json",
async: false,
success: function (data) {
obj.code = data.Code;
obj.message = data.Message;
obj.content = data.Content;
},
error: function (e, d) {
console.log(e);
obj.code = "500";
obj.message = e.statusText;
obj.content = "";
}
});
return obj;
}