我正在为其他人写一个关于他的文章。他是主持人而我不是。并且脚本将帮助他做一些缓和的事情。
现在这个脚本适合我。至于它可以为我工作。(因为我不是一个国防部) 但即使那些对我有用的东西也不适合他......
我检查了他的版本的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;
答案 0 :(得分:1)
为什么不让他尝试登录不是主持人帐户的帐户,以便从问题空间中删除一个变量。
对于主持人而言,页面的DOM可能与普通用户不同。如果您对作为常规用户的页面做出假设而不是主持人,则可能会导致问题。
我怀疑要修复它,您可能需要访问主持人帐户,以便您可以更轻松地复制该行为。
答案 1 :(得分:0)
哎呀。似乎这个游戏网站的网址可以访问www.gamesite.com以及gamesite.com(没有www.part)。这导致了这个问题。
抱歉打扰你。我现在羞于躲起来......