首页 > 解决方案 > JS:用脚本填充输入时启动搜索

问题描述

我正在尝试将音乐列表从应用程序传输到 Spotify。我得到了一系列歌曲(如 [ Hold On To Me PlaceboCome Undone Placebo] 等),并尝试以这种方式自动喜欢歌曲:

let inputField = document.getElementsByClassName('_2f8ed265fb69fb70c0c9afef329ae0b6-scss')[0];
let menu = document.querySelectorAll('react-contextmenu')[0];
let like = document.querySelectorAll('react-contextmenu-item')[1];

function addSong() {
    for (song of arrOfSongs) {

    inputField.value = song;
    menu.click();
    like.click();
    inputField.value = '';

    }
}

addSong();

有2个问题:

  1. 当输入字段中的值发生变化时,搜索不起作用:页面上的内容与填充前保持不变;
  2. 即使我自己键入某首歌曲的名称,它也会返回未定义的值menu和变量。like

标签: javascriptdom

解决方案


问题1:不清楚您的意思是“搜索不起作用:页面上的内容与填充之前相同”。如果您指的是输入的值,这是因为您首先将歌曲的值放在那里,然后在 2 行之后使用指令将其清除inputField.value = '';。如果您删除,一切都会更新。

问题 2,可能是类名,并且该react-contextmenu函数适用于选择器(请参阅此处https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors)。在这种情况下,您应该以这种方式更改对菜单和变量的赋值react-contextmenu-itemquerySelectorAll

let menu = document.querySelectorAll('.react-contextmenu')[0];
let like = document.querySelectorAll('.react-contextmenu-item')[1];

看到这个小提琴


推荐阅读