< P> Однако, в то время как на рабочем столе версии Chrome функция resolveˋ в записи каталога возвращает обещание с массивом компонентов пути к записи https://developer.mozilla.org/en-us/docs/web/api/ FileSystemDirectoryHandle/Resolve, под Android Похоже, что функция возвращается всегда, независимо от уровня гнездования, только два компонентного пути, начиная с ˋdocumentˋ, с последующей строкой, которая включает в себя каталоги, но разделенные ˋ%2ˋ, и префикс, например, ˋPrimary%3Adocuments%2fˋ.
- это различие между Chrome Desktop ˋresolveˋ и Android ˋresolveˋ по дизайну или причудливой/ошибкой этого первого выпуска?
Примерной страницей, открывающей сборщик каталога https://martin-honnen.github.io/js/2025 ... test1.html, если я открываю каталог, например Назван ˋXSLT-1.0ˋ на рабочей версии Chrome Я получаю некоторую иерархию, например, < /p>
- xslt-1.0
li> sub-folder1 (sub-folder1)
module-test2.xsl (sub-folder1 /module-test2.xsl) < /li>
< / ul>
< /li>
module-test1.xsl (module-test1.xsl) < /li>
< /ul>
< /li> < /ul>
, находясь на Android I >
sub-sub-folder1 (документ /первичный%3adocuments%2fxslt-1.0%2fsub-folder1)
module-test2.xsl (документ /pprimary%3adocuments%2fxslt-1.0%2fsub-folder1%2fmodule-test2.xsl)
< /ul>
< /li> - module-test1. XSL (Document/Primary%3Adocuments%2FXSLT-1.0%2FModule-test1.xsl)
Я также включаю код в качестве фрагмента кода, но в качестве JavaScript выполняется там внутри iframe, использование сборщика каталога не работает. < /p>
Код: Выделить всё
async function buildRootDirList(dirHandle) {
const ul = document.createElement('ul');
document.body.appendChild(ul);
const li = document.createElement('li');
ul.appendChild(li);
li.appendChild(document.createTextNode(dirHandle.name));
await buildDirList(dirHandle, dirHandle, li);
}
async function buildDirList(dirHandle, rootDirHandle, parentElement) {
const ul = document.createElement('ul');
parentElement.appendChild(ul);
for await (const entry of dirHandle.values()) {
const li = document.createElement('li');
ul.appendChild(li);
li.appendChild(document.createTextNode(`${entry.name} (${(await rootDirHandle.resolve(entry)).join('/')})`));
if (entry.kind === 'directory') {
await buildDirList(entry, rootDirHandle, li);
}
}
}
document.getElementById('dp1').addEventListener('click', async () => {
const dirHandle = await window.showDirectoryPicker();
await buildRootDirList(dirHandle);
}); < /code>
Подробнее здесь: https://stackoverflow.com/questions/793 ... thod-of-di
Мобильная версия