.click()/.trigger('click') 不适用于 Spotify 中的 Tampermonkey
Posted
技术标签:
【中文标题】.click()/.trigger(\'click\') 不适用于 Spotify 中的 Tampermonkey【英文标题】:.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
方法
【参考方案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>
【讨论】:
以上是关于.click()/.trigger('click') 不适用于 Spotify 中的 Tampermonkey的主要内容,如果未能解决你的问题,请参考以下文章
如何获取 JQuery.trigger('click');启动鼠标点击
jquery中,.trigger('click');事件和.click();的应用是否同一个道理?
jquery 新手想问一下trigger('click')问题