diff options
Diffstat (limited to 'src/main/resources/META-INF')
-rw-r--r-- | src/main/resources/META-INF/resources/bookmarks/bookmarkList.js | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/main/resources/META-INF/resources/bookmarks/bookmarkList.js b/src/main/resources/META-INF/resources/bookmarks/bookmarkList.js index eab07f5..11c4b10 100644 --- a/src/main/resources/META-INF/resources/bookmarks/bookmarkList.js +++ b/src/main/resources/META-INF/resources/bookmarks/bookmarkList.js @@ -1,5 +1,30 @@ document.addEventListener('DOMContentLoaded', () => { let bookmarkSubmissionPane = document.getElementById('bookmark-submission-pane'); + let titleInput = document.getElementById('title-input'); let uriInput = document.getElementById('uri-input'); + let uriSpinner = document.getElementById('uri-spinner'); + bookmarkSubmissionPane.addEventListener('opened', () => uriInput.focus()); -});
\ No newline at end of file + + uriInput.addEventListener('blur', async () => { + uriSpinner.hidden = false; + uriSpinner.playing = true; + let r = await fetch(uriInput.value); + uriSpinner.hidden = true; + uriSpinner.playing = false; + + if (!r.ok) { + return; + } + + let html = await r.text(); + let parser = new DOMParser(); + let doc = parser.parseFromString(html, "text/html"); + let titles = doc.getElementsByTagName('title'); + if (titles.length <= 0) { + return; + } + titleInput.value = titles[0].innerText; + }); +}); + |