Last active
July 14, 2018 14:50
-
-
Save kukat/2219105 to your computer and use it in GitHub Desktop.
Load more: AirAsiaPlus.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | |
} | |
}); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi, what is this function for? Loading flights?