私は現在、Greasemonkey のこのスクリプトに取り組んでいます。このスクリプトの目的は、Web サイト MeetMe.com のフィードで特定のユーザーからの投稿を削除することです。
私のコードは次のとおりです。
// ==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 とこの Web サイトで回答を探していたところ、ページが読み込まれる前にスクリプトが実行しようとしていることが問題である可能性があるという多くの場所を読んだので、window.onload =
. しかし、問題は解決せず、それを理解するのに十分なほど類似した質問を見つけることができませんでした。
要素の HTML コードを表示するために、Firefox の「Inspect Element」機能を使用しています。役立つ可能性のあるページ上の 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 コードの一部にすぎません。それぞれが 1 人のユーザーの投稿を表すため、フィードにはこれらのクラスが多数あります。また、各クラスには、ユーザーのリンクやユーザーのプロフィール写真などのために複数のクラスがあります。ただし、ブラックリストにあるものと同じポスター ID を持つ完全な feedItemArea クラスを削除したいと考えています。
簡単にサポートできるように、明確かつ簡潔に説明したことを願っていますが、他の情報が必要な場合はお知らせください。投稿します。children
私の質問は、何が原因undefined
ですか? 前もって感謝します。