-1

やあみんな、私はグリースモンキースクリプトを開発してJavascriptプログラミングを練習しています。理論的には、生のJavaScriptであるため、JavaScriptコーディングが改善されます。

今、Mobwars facebook のスクリプトをコーディングしています。人を殺したり、物を盗んだり、モブを作ったりするゲームです。

これをよりよく理解するために、ページのスクリーンショットを次に示します。

代替テキスト http://www.picamatic.com/show/2009/03/18/08/11/2877480_703x486.png 私がやろうとしているのは、ページをスキャンし、ジョブの名前を取得して表示することですユーザーに。

強盗、家屋強盗、信号機盗難などのテキストを取得したい

テキストには、シルバーに設定された色のプロパティがあります。

私のコードを見てください、私は Firebug で試しましたが、警告さえしません..

var jobs = {};

jobs.scan = function() {
    var tagHolder = {};
    var availJobs = {};
    var jobContents = dom.get("app8743457343_content");
    var rData = dom.getElementsByClass(rowData, jobContents, "tr");
    for(var i = 0; i < rData.length; i++) {
        var rChildren = rData[i].childNodes;
        for(var j = 0; j < rChildren.length; j++) {
            if(rChildren[j].tagName === "B") {
                tagHolder.push(rChildren[j]);
            }
        }
        for(var k = 0; k < tagHolder.length; k++) {
            if (tagHolder[k].color == "silver") {
                availJobs.push(tagHolder[k].textContent);
            }
        }
    }
    return alert(availJobs[0]);
}

jobs.scan();

コードの何が問題なのか教えてください。このコードを微調整するだけで、修正できた場合は、ここで再度報告します。ありがとう

4

3 に答える 3

1

yboの+1、利用可能な情報を考えると、あなたの答えは的を射ていました。Mob Wars ページから関連するマークアップをざっと見てみたところ、次のようになっています。

<div id="app8743457343_content" fbcontext="db6ca1f1773e">
 ...
   <b style="font-size: 15px; color: silver;">Mugging</b>
 ...

実際のマークアップに基づいてソリューションを次のように変更しました。

// ==UserScript==
// @name          Mob Wars Job List
// @namespace     namespace
// @description   Script to summarise available Mob Wars jobs.
// @include       http://apps.facebook.com/mobwars/jobs/
// @require       http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
// ==/UserScript==

$(document).ready(function() {
var jobs = {};
jobs.scan = function() {
    var availJobs = new Array();
    $("#app8743457343_content b").each(function() {
        if ($(this).css("color") == "silver")
            availJobs.push($(this).text());
    });
    return alert("Available jobs:\n" + availJobs.join('\n'));
}
jobs.scan();
});
于 2009-06-15T20:41:53.953 に答える