首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pandora不使用waitForKeyElements

Pandora不使用waitForKeyElements
EN

Stack Overflow用户
提问于 2017-01-09 04:39:13
回答 1查看 263关注 0票数 2

Pandora没有使用waitForKeyElements。我花了几个小时试图找出我哪里出了问题,却找不出答案。

它只工作一次,但在下一首曲目播放时不起作用。

代码语言:javascript
复制
// ==UserScript==
// @name         Pandora I am listening to
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Pandora I am listening to
// @author       You
// @match        http*://www.pandora.com/*
// @include      https://www.pandora.com/station/play/*
// @require      https://gist.githubusercontent.com/BrockA/2625891/raw/9c97aa67ff9c5d56be34a55ad6c18a314e5eb548/waitForKeyElements.js
// @require     http://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js
// @grant    GM_addStyle
// ==/UserScript==

function liveNow() {
    setTimeout(function() {
        console.log(`Now Playing ${$(".songTitle")[0].innerHTML}`);
    }, 6000);  // delay for loading of music

}

waitForKeyElements ("#trackInfoContainer .songTitle", liveNow);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-09 06:20:00

#trackInfoContainer正在被重用(而不是重新创建),用于每个附加的轨道。

因此,等待节点的创建是不够的,您还必须检查内容是否已更改。

下面是如何在waitForKeyElements中做到这一点:

代码语言:javascript
复制
waitForKeyElements ("#trackInfoContainer .songTitle", liveNow);

function liveNow (jNode) {
    var titleText  = jNode.text ().trim ();
    var lastText   = jNode.data ("lastText")  ||  "";

    if (titleText != lastText) {
        jNode.data ("lastText", titleText);
        console.log (`Now Playing ${titleText}`);
    }
    return true;  //-- Tell waitForKeyElements to keep checking this node.
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41541110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档