Files
App-Installer-For-Windows-8…/shared/html/js/resources.js
2026-02-06 18:12:21 +08:00

84 lines
3.7 KiB
JavaScript

(function() {
"use strict";
function getAllNodesHasResource() {
var allElements = document.body.getElementsByTagName('*');
var result = [];
for (var i = 0; i < allElements.length; i++) {
var el = allElements[i];
var tag = el.tagName.toLowerCase();
if (tag === 'script' || tag === 'style' || tag === 'link') {
continue;
}
var byName = el.getAttribute('data-res-byname');
var byId = el.getAttribute('data-res-byid');
var fromFile = el.getAttribute('data-res-fromfile');
var byXml = el.getAttribute('data-res-resxml');
var customSet = el.getAttribute('data-res-custom');
if ((byName && !Bridge.NString.empty(byName)) ||
(byId && parseInt(byId, 10) > 0) ||
(fromFile && !Bridge.NString.empty(fromFile)) ||
(byXml && !Bridge.NString.empty(byXml)) ||
(customSet && !Bridge.NString.empty(customSet))) {
result.push(el);
}
}
return result; // 返回符合条件的元素数组
}
module.exports = {
getFileResPair: function(filepath, resid) {
return {
filepath: filepath,
resid: resid
};
}
};
module.exports = {
Resources: {
processAll: function() {
var nodes = getAllNodesHasResource();
var resources = Bridge.Resources;
for (var i = 0; i < nodes.length; i++) {
if (nodes[i].hasAttribute('data-res-byname')) {
var resName = nodes[i].getAttribute('data-res-byname');
try { nodes[i].textContent = Bridge.Resources.byname(resName); } catch (e) {}
} else if (nodes[i].hasAttribute('data-res-byid')) {
var resId = parseInt(nodes[i].getAttribute('data-res-byid'), 10);
try { nodes[i].textContent = Bridge.Resources.byid(resId); } catch (e) {}
} else if (nodes[i].hasAttribute('data-res-fromfile')) {
try {
var obj = eval(nodes[i].getAttribute('data-res-fromfile'));
nodes[i].textContent = resources.fromfile(obj.filepath, obj.resid);
} catch (e) {
nodes[i].textContent = "";
}
} else if (nodes[i].hasAttribute('data-res-resxml')) {
try {
var obj = nodes[i].getAttribute('data-res-resxml');
var strres = external.StringResources;
if (strres) {
try {
nodes[i].textContent = strres.get(obj);
} catch (e) {
nodes[i].textContent = strres.getString(obj);
}
}
} catch (e) {
nodes[i].textContent = "";
}
} else if (nodes[i].hasAttribute('data-res-custom')) {
try {
var obj = eval(nodes[i].getAttribute('data-res-custom'));
nodes[i].textContent = obj;
} catch (e) {
nodes[i].textContent = "";
}
} else {
nodes[i].textContent = "";
}
}
}
}
};
})();