small-packages/luci-app-ssr-plus/luasrc/view/shadowsocksr/client_dns_defaults.htm
2026-05-10 09:48:30 +08:00

79 lines
2.0 KiB
HTML

<script type="text/javascript">
//<![CDATA[
(function() {
function getField(name) {
return document.querySelector('select[name$=".' + name + '"], input[name$=".' + name + '"]');
}
function ensureDefaultValue(modeValue, fieldName) {
var modeEl = getField('pdnsd_enable');
var dnsEl = getField(fieldName);
if (!modeEl || !dnsEl || modeEl.value !== modeValue) {
return;
}
var current = (dnsEl.value || '').trim();
var placeholder = (dnsEl.options && dnsEl.selectedIndex >= 0 && dnsEl.options[dnsEl.selectedIndex])
? (dnsEl.options[dnsEl.selectedIndex].text || '').trim()
: '';
if (current !== '' && current !== '-- 请选择 --' && current !== '-- Please choose --' &&
placeholder !== '-- 请选择 --' && placeholder !== '-- Please choose --') {
return;
}
if (dnsEl.tagName === 'SELECT') {
var firstValue = '';
for (var i = 0; i < dnsEl.options.length; i++) {
var option = dnsEl.options[i];
if (option && option.value) {
firstValue = option.value;
break;
}
}
if (firstValue) {
dnsEl.value = firstValue;
}
} else if (dnsEl.dataset && dnsEl.dataset.default) {
dnsEl.value = dnsEl.dataset.default;
}
}
function ensureMosdnsDefault() {
ensureDefaultValue('4', 'tunnel_forward_mosdns');
}
function ensureChinaDnsNgDefault() {
ensureDefaultValue('6', 'chinadns_ng_tunnel_forward');
}
function bindModeChange() {
var modeEl = getField('pdnsd_enable');
if (!modeEl || modeEl.dataset.ssrDnsDefaultBound) {
return;
}
modeEl.dataset.ssrDnsDefaultBound = '1';
modeEl.addEventListener('change', function() {
window.setTimeout(function() {
ensureMosdnsDefault();
ensureChinaDnsNgDefault();
}, 0);
});
}
function initMosdnsDefault() {
bindModeChange();
ensureMosdnsDefault();
ensureChinaDnsNgDefault();
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initMosdnsDefault);
window.addEventListener('load', initMosdnsDefault);
} else {
initMosdnsDefault();
}
})();
//]]>
</script>