我目前正在研究Greasemonkey的這個腳本。此腳本的目標是從網站MeetMe.com的供稿中刪除特定用戶的帖子。
我的代碼是:getElementById javascript undefined
// ==UserScript==
// @name PostBeGone
// @namespace TestingNameSpace
// @include http://www.meetme.com/apps/home
// @version 1
// ==/UserScript==
var posterId;
var blacklist = new Array();
var toDelete;
blacklist [0] = 45112400; //These are just random peoples' user Id's that I am
blacklist [1] = 9649820; //using to test this script
blacklist [2] = 55907221;
blacklist [3] = 56788411;
window.onload = function checkAndRemove() {
var children = document.getElementById('feedReloadArea').childnodes;
alert(children); //alert says "undefined"
i = 0;
While (i < children.length)
{
posterId = children[i].getAttribute('data-poster');
toDelete = null;
i2 = 0;
while (i2 < blacklist.length)
{
if (posterId == blacklist[i2])
{
toDelete = children[i];
break;
}
i2++;
}
if (toDelete != null)
{
toDelete.parentNode.removeChild(toDelete);
}
i++;
}
}
使用具有多次執行各種提醒,我知道代碼執行到那裏我有alert(children)
點,這是返回undefined
。
在我的腳本中有window.onload =
之前,在Google和本網站搜索答案時,我讀了很多地方,說問題可能是腳本可能在頁面加載之前嘗試執行,所以我添加了window.onload =
。然而,問題依然存在,我找不到任何類似於我的問題來理解它。
要查看元素的html代碼,我一直在使用Firefox的「檢查元素」功能。頁面上的html代碼片段可能有所幫助:
<div id="feedReloadArea" style="display: block;">
<div class="feedItemArea feedSpotlightHighlight" data-comment-maintenance="0" data-created-at="1360098729.05091" data-numeric-reference-id="" data-reference-uuid="0d76957f-2f64-4654-99ea-f67974116b32" data-entity="StatusUpdate" data-poster="59538173" data-uuid="b9e85465-5b91-4b5c-a443-c4e37d716481"></div><div class="feedItemArea" data-comment-maintenance="0" data-created-at="1360103761.624714" data-numeric-reference-id="" data-reference-uuid="c2c201ca-a391-4fff-aec2-9823a3e90815" data-entity="StatusUpdate" data-poster="45508368" data-uuid="11149a32-38cf-4919-b081-0bd39bdc49eb"></div>
<div class="feedItemArea" data-comment-maintenance="0" data-created-at="1360103737.756343" data-numeric-reference-id="" data-reference-uuid="997824a2-994c-467f-bfbe-aa4beb1e402f" data-entity="StatusUpdate" data-poster="38033716" data-uuid="bc075882-771c-4ee2-ad28-dbf21fbf3bd3"></div>
澄清,這只是HTML代碼的一部分。 Feed中有許多類,因爲每個類代表一個用戶的帖子。此外,每個課程都有多個內容,例如用戶的鏈接和用戶的個人資料圖片。不過,我想要刪除與黑名單上的任何海報ID都相同的完整feedItemArea類。
我希望我已經清楚,簡潔,易於幫助,但如果需要其他信息以幫助我,請告訴我,我會發布它。我的問題是什麼導致children
爲undefined
?提前致謝。
'.childnodes'應該是'.childNodes'。並且注意並不是每個孩子都是一個元素節點。如果你只想要元素節點,使用'.children'。 –