为什么dojo.xhrGet需要不同类型的url才能在不同的计算机上运行(pc / mac)?

时间:2011-01-15 21:13:51

标签: javascript firefox dojo greasemonkey

我正在为其他人写一个关于他的文章。他是主持人而我不是。并且脚本将帮助他做一些缓和的事情。

现在这个脚本适合我。至于它可以为我工作。(因为我不是一个国防部) 但即使那些对我有用的东西也不适合他......

我检查了他的版本的greasemonkey插件和firefox,他是最新的。 唯一真正不同的是我在Mac上并且他是个人电脑,但我不认为这会有任何问题。

这是对他不起作用的功能之一。他确实获得了第一个和第三个GM_log消息。但不是第二个(“得到一些(1)......”)。

kmmh.trackNames = function(){
GM_log("starting to get names from the first "+kmmh.topAmount+" page(s) from leaderboard.");
kmmh.leaderboardlist = [];
for (var p=1; p<=(kmmh.topAmount); p++){
    var page = "http://www.somegamesite.com/leaderboard?page="+ p;  
    var boardHTML = "";
    dojo.xhrGet({
        url: page,
        sync: true,
        load: function(response){   
            boardHTML = response;
            GM_log("got some (1) => "+boardHTML.length);
        },
        handleAs: "text"
    });

    GM_log("got some (2) => "+boardHTML.length);

    //create dummy div and place leaderboard html in there
    var dummy = dojo.create('div', {    innerHTML: boardHTML    });
//search through it
    var searchN = dojo.query('.notcurrent', dummy).forEach(function(node,index){
        if(index >= 10){
            kmmh.leaderboardlist.push(node.textContent);    // add names to array
        }
    });
}
GM_log("all names from "+ kmmh.topAmount +" page(s) of leaderboard ==> "+ kmmh.leaderboardlist);

有没有人知道可能导致这种情况的原因?

编辑:我知道我必须根据他在模拟屏幕上看到的内容进行编写。所以我让他复制粘贴页面来源等等。除此之外,脚本的这一部分并不依赖于是否为mod。

我得到了其他一切为他工作的东西。只是这个功能仍然没有在他的电脑上。

EDIT2(已更改问题):好的。所以经过一些试验和错误,我得到它的工作,但它仍然很奇怪。 当我删除了在dojo.xhrGet()中使用的url的www部分时,我得到了最终相同的错误。所以我让他添加www给他,现在它的工作原理。 奇怪的是他现在使用一个包含“www”的网址的脚本,而我正在使用一个没有“www”的网址的脚本......

对我来说: var page = "http://somegamesite.com/leaderboard?page="+ p; 并为他: var page = "http://www.somegamesite.com/leaderboard?page="+ p;

2 个答案:

答案 0 :(得分:1)

为什么不让他尝试登录不是主持人帐户的帐户,以便从问题空间中删除一个变量。

对于主持人而言,页面的DOM可能与普通用户不同。如果您对作为常规用户的页面做出假设而不是主持人,则可能会导致问题。

我怀疑要修复它,您可能需要访问主持人帐户,以便您可以更轻松地复制该行为。

答案 1 :(得分:0)

哎呀。似乎这个游戏网站的网址可以访问www.gamesite.com以及gamesite.com(没有www.part)。这导致了这个问题。

抱歉打扰你。

我现在羞于躲起来......