我无法使用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() );
}
答案 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指南,您应该始终提供一个或两个。)