Light12306/Web12306/js/otn/dynamicjs.js

85 lines
1.9 KiB
JavaScript
Raw Normal View History

2014-12-05 23:32:41 +08:00
define(function (require, exports, module) {
var encode = require("./encode.js");
var ajax = require("../platform/webRequest.js");
2014-12-18 23:03:04 +08:00
var dk;
Object.defineProperty(exports, "dynamickey", {
get: function () {
return dk;
},
set: function (value) {
dk = value;
}
});
2014-12-05 23:32:41 +08:00
exports.loadDynamicPage = function (url, refer) {
var def = new $.Deferred();
ajax.sendGet(url, refer, null, "text").done(function () {
exports.checkDynamicJs(arguments[0], refer)
.done(function () {
def.resolve(arguments[0]);
}).fail(function () {
def.resolve(null);
});
}).fail(function () {
def.resolve(null);
});
return def.promise();
};
exports.checkDynamicJs = function (html, refer) {
/// <summary>
/// 获得对应的dynamicjs
/// </summary>
/// <param name="html"></param>
/// <returns type=""></returns>
var def = new $.Deferred();
if (!html)
def.resolve(null);
else {
var key = /['"].*?dynamicJs\/(.+?)['"]/.exec(html) && RegExp.$1;
if (!key)
def.resolve(null);
else {
var url = "dynamicJs/" + key;
ajax.sendGet(url, refer, null, "text")
.done(function (text) {
var checkReg = /['"].*?dynamicJs\/(.+?)['"]/g;
var pingurl = checkReg.exec(text) && RegExp.$1;
var code = /key\s*=\s*'(.*?)'/.exec(text) && RegExp.$1;
if (!code || !pingurl) {
def.resolve(null);
} else {
//是否有自动回发?
if (checkReg.exec(text)) {
//自动回发
ajax.sendPost("dynamicJs/" + pingurl, url, null, "text");
}
var data = {
pingurl: pingurl,
code: code,
value: encode.encode(code, "1111"),
validate: encode.createEncodeStr(code, "1111"),
baseFormData: {}
};
2014-12-18 23:03:04 +08:00
dk = data;
2014-12-05 23:32:41 +08:00
data.baseFormData[data.code] = data.value;
def.resolve(data);
}
}).fail(function () {
def.resolve(null);
});
}
}
return def.promise();
};
});