簡單試了下,能用,但是不好用,用光標去選太麻煩,個人來講覺得不如直接用prompt彈個窗口給用戶輸入,醜是比較醜,但是簡單有效
文件類型的話,在headers裡面的Content-Type也可以用,比如你的 https://files.catbox.moe/nuj2cy.mp3,可以很清楚看到audio/mpeg,又比如m4a就是audio/x-m4a(音頻應詃都是audio開頭,視頻是video。不過這玩意是對面給的回應,對方不按標準來你也拿他沒辦法×)
m4a
至於怎麼獲取,用XMLHttpRequest是一種方法,你喜歡的話像fetch api也可以
再補充一下,你把選項加入的操作寫在輸入框的click event裡面,但是這個輸入框不是在所有情況下都處於未展開的狀態的,最簡單的方法就是點開它發後嘗試發送一條空回覆,或者直接點修改,你會發現選項沒有被加上去
再再補充,因為很麻煩,還是覺得Mutation observer更好使,這玩意實現起來省事還通用。至於ui你就自己想辦法吧 (×) @367ddd
const observer = new MutationObserver(function (mutations) {
mutations.forEach((record) => {
if (!record.addedNodes.length) return;
for (const node of record.addedNodes) {
if (node.tagName?.toLowerCase() === 'ul' && ['ipsMenu','ipsMenu_auto','ipsHide'].every(attr => node.classList.contains(attr))) {
const ipsMenuItem = document.createElement('li');
ipsMenuItem.classList.add('ipsMenu_item');
const link = document.createElement('a');
link.href = '#';
link.textContent = 'Test';
ipsMenuItem.appendChild(link);
node.appendChild(ipsMenuItem);
}
}
});
});
observer.observe(document.querySelector('body'), {
childList: true,
});