0

facebook pokesページ、つまりhttp://www.facebook.com/pokesで、javascriptを使用してすべてのuidを見つけようとしています。ファイアバグから私は次のタグ名を取得します...

<a rel="async-post" ajaxify="/ajax/pokes/poke_inline.php?uid=XXXXXXXXXXXX&amp;pokeback=1" href="#" class="uiIconText"><i style="top: 0px;" class="img sp_1lbo22 sx_3b5b96"></i>Poke Back</a>

ここに画像の説明を入力してください

すべてのuidを取得するために、JavaScriptを次のように設計しました-

var allAnchorElements = document.getElementsByTagName('a');

for (var i = 0; i < allAnchorElements.length; i++) {
   var uid = allAnchorElements[i].ajaxify.match(/uid=([0-9]*)/)[1];

ここに完全なコードを入れていません。ファイアバグコンソールからこのコードを実行すると、TypeError: allAnchorElements[i].ajaxify is undefinedエラーが発生します。

なぜこのエラーが発生するのですか?スクリプトを変更してすべてのuidを取得するにはどうすればよいですか?

4

1 に答える 1

4

よくdocument.getElementsByTagName('a'); ページ上のすべてのリンクを取得しています。すべてのリンクにその属性がありますか?答えが「いいえ」の場合は、それらを除外します。

一方通行:

var allAnchorElements = document.getElementsByTagName('a');
for (var i = 0; i < allAnchorElements.length; i++) {
    var ajaxify = allAnchorElements[i].ajaxify;
    if (!ajaxify) {
        continue;
    }
    var uid = ajaxify.match(/uid=([0-9]*)/)[1];
}

別の方法は、querySelectorを使用して要素を取得することです。

于 2012-10-12T20:48:10.937 に答える