Skip to content

Instantly share code, notes, and snippets.

@kukat
Last active July 14, 2018 14:50
Show Gist options
  • Save kukat/2219105 to your computer and use it in GitHub Desktop.
Save kukat/2219105 to your computer and use it in GitHub Desktop.
Load more: AirAsiaPlus.js
var loadMoreLink;
var loadingImg;
load = function() {
load.getScript("https://code.jquery.com/jquery-1.12.4.min.js");
load.tryReady(0); //用来等待jQuery类库加载
}
//以下代码用来动态加载任何js代码
load.getScript = function(filename) {
var script = document.createElement('script')
script.setAttribute("type","text/javascript")
script.setAttribute("src", filename)
if (typeof script!="undefined")
document.getElementsByTagName("head")[0].appendChild(script)
}
load.tryReady = function(time_elapsed) {
//持续查询jQuery是否加载完毕
if (typeof jQuery == "undefined") { // 如果没有加载jQuery...
if (time_elapsed <= 5000) {
setTimeout("load.tryReady(" + (time_elapsed + 200) + ")", 200); //设置200ms后继续尝试
} else {
alert("Failed to loading jQuery because of timeout.")
}
} else {
// jQuery加载完毕后执行的代码
jQuery("#status").animate({'font-size':'30px'}).text("Great! jQuery is loaded for GBin1.com!");
jQuery.getScript('https://cdn.rawgit.com/azatoth/jquery-sprintf/master/jquery.sprintf.js');
jQuery.getScript('https://cdnjs.cloudflare.com/ajax/libs/chrono-node/1.3.4/chrono.min.js');
loadMoreLink = jQuery('a:last').html('Load More').attr('href','javascript:loadMore()');
loadMoreLink.after('<img alt="" style="display:none" id="loadingImg" src="data:image/gif;base64,R0lGODlhEAALAPQAAP////9QAP/m2v/f0P/x6v9VB/9QAP9wL/+qgv+SYf/Quv9oI/+DS/+viv+VZf/Tvv9rJ/9TBf+GT//u5v/k2P/39P93Of/n3P/28v/Ntv++oP/byv/z7v9QAP9QAP9QACH5BAkLAAAAIf4aQ3JlYXRlZCB3aXRoIGFqYXhsb2FkLmluZm8AIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7" />');
loadingImg = jQuery('#loadingImg');
}
}
load();
// get parameter's value from URL
function getURLParameter(name) {
return decodeURI(
(RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
);
}
// get all parameters
function getParameters() {
var searchString = window.location.search.substring(1)
, params = searchString.split("&")
, hash = {}
;
for (var i = 0; i < params.length; i++) {
var val = params[i].split("=");
hash[unescape(val[0])] = unescape(val[1]);
}
return hash;
}
function getNextDate()
{
hash = {};
var tdLastText = jQuery('#result > tbody > tr:last-child > td:first-child').text();
// var date = /(\d{1,2}) (\w+) (\d{4,})/.exec(tdLastText);
var date = chrono.parseDate(tdLastText);
return chrono.parseDate('tomorrow', date);
}
var parameters = getParameters();
function loadMore()
{
loadMoreLink.html('loading...');
loadingImg.toggle();
var date = getNextDate();
var nextUrl = `https://airasiaplus.com/search-cheap-flight.php?fMonth=${date.getMonth()+1}&fDay=${date.getDate()}&fYear=${date.getFullYear()}&fOrigin=${parameters.fOrigin}&fDestination=${parameters.fDestination}&fCurrency=CNY&submit=Search+AirAsia+Flights`;
var theTable = jQuery('#result');
jQuery.ajax({
url: nextUrl,
success: function(data, textStatus, jqXHR){
nextHtml = data;
console.log(data);
var newTable = jQuery(nextHtml).find('#result');
theTable.find('tbody').append(newTable.find('tbody').html());
jQuery('tr:has(td[colspan=6]):gt(0)').remove()
loadMoreLink.html('Load More');
loadingImg.toggle();
},
error: function(jqXHR, textStatus, errorThrown){
console.log(errorThrown);
loadMoreLink.html('Load More');
loadingImg.toggle();
}
});
}
@tiomanisland
Copy link

Hi, what is this function for? Loading flights?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment