You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.8 KiB
67 lines
1.8 KiB
5 years ago
|
(function () {
|
||
|
|
||
|
if (!window.$) {
|
||
|
console.warn('qcmain::loader:\n\tjquery don\'t be loaded first!');
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var NAV_TYPE = {
|
||
|
leftnav: 'leftnav',
|
||
|
topnav_firstlevel: 'topnav_firstlevel',
|
||
|
topnav_sndlevel: 'topnav_sndlevel',
|
||
|
};
|
||
|
|
||
|
var NAV_METADATA = {};
|
||
|
NAV_METADATA[NAV_TYPE.leftnav] = {
|
||
|
selector: '#qcLeftNavSwitcher',
|
||
|
dataJs: "//main.qcloudimg.com/scripts/qccomponents/left-nav.3cab8319a893bdfb2876e4cd5499b986.js",
|
||
|
};
|
||
|
NAV_METADATA[NAV_TYPE.topnav_firstlevel] = {
|
||
|
selector: '#qcTopNavFstLevel',
|
||
|
};
|
||
|
NAV_METADATA[NAV_TYPE.topnav_sndlevel] = {
|
||
|
selector: '#qcTopNavSndLevelSheetContainer',
|
||
|
dataJs: "//main.qcloudimg.com/scripts/qccomponents/top-nav.2261e6b4e90fa5d7bdffa2ae9d606f2c.js",
|
||
|
};
|
||
|
|
||
|
var availableNavs = [NAV_TYPE.leftnav, NAV_TYPE.topnav_firstlevel, NAV_TYPE.topnav_sndlevel].filter(function (nav) {
|
||
|
return $(NAV_METADATA[nav].selector).length > 0;
|
||
|
});
|
||
|
|
||
|
if(availableNavs.length === 0){
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var shouldLoadDataJsNavs = availableNavs.filter(function (nav) {
|
||
|
return !!NAV_METADATA[nav].dataJs;
|
||
|
});
|
||
|
|
||
|
var COMPLETED = 1 + shouldLoadDataJsNavs.length;
|
||
|
var step = 0;
|
||
|
|
||
|
function loadScript (src, callback) {
|
||
|
var script = document.createElement('script');
|
||
|
script.onerror = function (error) { callback(error, null); };
|
||
|
script.onload = function () { callback(null, null); };
|
||
|
script.src = src;
|
||
|
document.head.appendChild(script);
|
||
|
}
|
||
|
|
||
|
function loadScriptCallback (error) {
|
||
|
step++;
|
||
|
if (error) {
|
||
|
return;
|
||
|
}
|
||
|
if (step === COMPLETED && window.QCComponent) {
|
||
|
window.QCComponent.init();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
shouldLoadDataJsNavs.forEach(function (nav) {
|
||
|
loadScript(NAV_METADATA[nav].dataJs,loadScriptCallback)
|
||
|
});
|
||
|
|
||
|
var logicalScript = "//imgcache.qq.com/qcloud/main/scripts/release/qccomponent/index.93e5437c205358f68660.js?max_age=31536000";
|
||
|
loadScript(logicalScript, loadScriptCallback);
|
||
|
})();
|