| document.addEventListener('DOMContentLoaded', function() { | |
| fetch('https://99i-tts.hf.space/voices?l=zh&d') | |
| .then(response => response.json()) | |
| .then(data => { | |
| const voices = data.voices; | |
| displayVoices(voices); | |
| setupFilters(voices); | |
| }); | |
| function displayVoices(voices) { | |
| const tableBody = document.getElementById('voicesTable').getElementsByTagName('tbody')[0]; | |
| tableBody.innerHTML = ''; // 清空表格 | |
| voices.forEach(voice => { | |
| const row = tableBody.insertRow(); | |
| row.insertCell(0).innerText = voice.DisplayName; | |
| row.insertCell(1).innerText = voice.Gender; | |
| row.insertCell(2).innerText = voice.LocalName; | |
| row.insertCell(3).innerText = voice.LocaleName; | |
| row.insertCell(4).innerText = voice.Status; | |
| // 插入其他单元格 | |
| }); | |
| } | |
| function setupFilters(voices) { | |
| const genderSelect = document.getElementById('gender'); | |
| const localeSelect = document.getElementById('locale'); | |
| genderSelect.addEventListener('change', () => filterVoices()); | |
| localeSelect.addEventListener('change', () => filterVoices()); | |
| function filterVoices() { | |
| const selectedGender = genderSelect.value; | |
| const selectedLocale = localeSelect.value; | |
| const filteredVoices = voices.filter(voice => { | |
| return (selectedGender === '' || voice.Gender === selectedGender) && | |
| (selectedLocale === '' || voice.Locale === selectedLocale); | |
| }); | |
| displayVoices(filteredVoices); | |
| } | |
| } | |
| }); | |
| body { | |
| font-family: Arial, sans-serif; | |
| } | |
| #filters { | |
| margin-bottom: 20px; | |
| } | |
| table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| } | |
| th, td { | |
| border: 1px solid #ddd; | |
| padding: 8px; | |
| text-align: left; | |
| } | |
| th { | |
| background-color: #f2f2f2; | |
| } | |