无法检索AJAXed内容

时间:2016-02-02 19:07:42

标签: javascript jquery tampermonkey

我无法使用wait函数从动态网页中检索用户名。但是,当我在Chrome开发者工具中执行$("#label301354000").text();时,我会获得用户名。知道如何调整函数来捕获id值吗?

// ==UserScript==
// @name         UI
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Test
// @author       Dejan
// @match        http://url/*
// @require      https://ajax.googleapis.com/ajax/libs/jquery/2.2.0
// @require      https://gist.githubusercontent.com/raw/2625891/waitForKeyElements.js
// @grant        GM_addStyle
// ==/UserScript==
/* jshint -W097 */
'use strict';

waitForKeyElements("#label301354000", getUser);
function getUser(jNode) {
   console.log("User is "+ jNode.text() );
}

1 个答案:

答案 0 :(得分:0)

该问题省略了关键细节,请参阅上述评论。

但是在 general 中,如果$("#label301354000").text(); 始终有效且

function getUser(jNode) {
   console.log("User is "+ jNode.text() );
}

在Tampermonkey脚本中显示为空,它表明目标节点不是最佳选择,或者某个时刻创建节点并稍后由页面填充。

对于这种情况,

waitForKeyElements检查回调返回。将getUser()更改为:

function getUser(jNode) {
    var usrText = jNode.text ().trim ();
    if (usrText) {
        console.log ("User is " + usrText);
    }
    else
        return true;  //-- Keep waiting.
}

如果不起作用,请提供正确的MCVE和/或指向目标网页的链接。 (根据SO指南,您应该始终提供一个或两个。)