Javascript chrome扩展程序修改后的网站不断变回原创版本

时间:2015-07-19 14:51:17

标签: javascript google-chrome google-chrome-extension

我尝试编写一个小扩展名,用特定字符串更改所有链接,然后将字体颜色设置为红色/黄色/绿色。 我第一次尝试只更改我找到的第一个链接,一切都很好(调试速度更快),现在我删除了一些奇怪的中断语句。

如果我让我的程序搜索所有链接没有任何变化。但是,如果我将它设置为停在一个我知道应该更改的某个字符串,它只会更改最后一个字符串,而不是其他任何字符串。因此,每当我尝试操纵链接时,似乎每次进展都消失了。但是这种重置只发生在处理http请求的线程中。在我通过所有链接的主循环中,我最初将每个字符串设置为红色并且不会发生变化。 有任何想法吗?这是代码:

var links = document.getElementsByTagName("a");
$(document).ready(function() {
    "use strict";
    var links = document.getElementsByTagName("a");
    for(let i=0;i<links.length;i++){
        if(links[i].toString().includes("/anime/")) {
            //Color red
            links[i].innerHTML = "<font color=\"" + red + "\">" + links[i].innerHTML + "</font>";

            var searchURL = "http://random.url";

            var client = new XMLHttpRequest();
            client.onload = function () {
                firstRequestHandler(client, i);
            };
            client.open("GET", proxerSearchURL);
            client.send();      
        }    
    }
});

function firstRequestHandler(client, index) {
    if (client.status == 200 && client.responseText != "")
    {
        var response = client.responseText;

        //Color green
        links[index].innerHTML = hrefLink.innerHTML.replace(red, green);
    }
}

在这段代码之后,每个链接都是红色的。如果我在&#34; client.send();&#34;之后直接设置了一个break语句。它工作的最后一个环节&#34;是绿色,之前的每个链接都是红色,之后的每个链接都没有变化(显然)。

编辑:尝试使用&#34; let&#34;修复关闭问题。在&#34;严格模式&#34;但它仍然无法奏效。我错过了什么吗?还建立了全球链接,因为我认为它也可能有所帮助?不是...... Javascript很奇怪......

0 个答案:

没有答案