【问题标题】:.click()/.trigger('click') doesn't work with Tampermonkey in Spotify.click()/.trigger('click') 不适用于 Spotify 中的 Tampermonkey
【发布时间】:2018-01-04 00:53:54
【问题描述】:

我正在尝试编写一个脚本,该脚本将在某个事件之后跳到 Spotify 上的下一首歌曲,但我无法让它工作。

我知道这里已经有很多这样的问题,但我尝试了所有答案,但它们对我不起作用。

当我尝试使用 Chrome 控制台时,这些工作正常,但不在脚本中:

document.getElementsByClassName('spoticon-skip-forward-16')[0].click(); /*or*/
document.getElementsByClassName('spoticon-skip-forward-16')[0].trigger('click');

jQuery('spoticon-skip-forward-16:first').click(); /*or*/
jQuery('spoticon-skip-forward-16:first').trigger('click');

   jQuery('spoticon-skip-forward-16:first').each(function () {
        jQuery(this).css("color", "yellow");
        var clickEvent  = document.createEvent("MouseEvents");
        clickEvent.initEvent ("click", true, true);
        this.dispatchEvent (clickEvent);
    });

jQuery('spoticon-skip-forward-16:first') 可以代替 jQuery('spoticon-skip-forward-16').get(0) strong> 或 jQuery('spoticon-skip-forward-16')[0],它们都可以在控制台中工作,但不能在 Tampermonkey 中工作。

我知道该事件会发生,因为我已设置在单击之前更改按钮颜色,并且每次都会发生。

我没有收到任何错误,我尝试了 try and catch 但没有任何反应。

【问题讨论】:

  • 您确定document.getElementsByClassName('spoticon-skip-forward-16')[0].trigger('click'); 有效吗?我很惊讶 DOM 元素有一个 trigger 方法

标签: javascript jquery greasemonkey spotify tampermonkey


【解决方案1】:

您忘记添加 每当您在 jQuery 中按类引用元素时,您需要在类名前面添加 .

错误

jQuery('spoticon-skip-forward-16:first').click(); /*or*/
jQuery('spoticon-skip-forward-16:first').trigger('click');

改为

jQuery('.spoticon-skip-forward-16:first').click(); /*or*/
jQuery('.spoticon-skip-forward-16:first').trigger('click');

Example jsFiddle

$('.spoticon-skip-forward-16').click(function(){
	console.log($(this).attr('id'));
});

$('.spoticon-skip-forward-16:first').click(); 
$('.spoticon-skip-forward-16:last').click(); 

$('.spoticon-skip-forward-16').each(function () {
  $(this).css({
    color: 'yellow',
    background: '#000'
  });
  var clickEvent  = document.createEvent("MouseEvents");
  clickEvent.initEvent ("click", true, true);
  this.dispatchEvent (clickEvent);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="submit" class="spoticon-skip-forward-16" id="btn1">
Submit
</button>

<button type="submit" class="spoticon-skip-forward-16" id="btn2">
Submit
</button>

<button type="submit" class="spoticon-skip-forward-16" id="btn3">
Submit
</button>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-27
    • 2016-04-16
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多