Autor Zpráva
Fisir
Profil
Vytvářím vlastní plugin, který upravuje stránky podle mého gusta. Vše funguje, až na to, že když chci ovlivňovat co se upraví, nefunguje nic. Přikládám kód:
function ajax(url){
    var xmlhttp;
    if(window.XMLHttpRequest){
        xmlhttp=new XMLHttpRequest();
    } else {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    };
    xmlhttp.open("GET",url,true);
    xmlhttp.onreadystatechange = function(){
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
            return(xmlhttp.responseText);
        };
    };
    xmlhttp.send();
};

if(domena == "diskuse.jakpsatweb.cz"){
    var nastaveni = JSON.parse(ajax("http://plugin.j-jaburek.tk/intfiles/settings.php?for=djpw&action=read"));
    if(nastaveni.styles != "off"){
        var styl = document.createElement("link");
        document.getElementsByTagName("head")[0].appendChild(styl);
        styl.setAttribute("rel","stylesheet");
        styl.setAttribute("href","http://plugin.j-jaburek.tk/djpw/djpw.css");
        document.getElementById("time").innerHTML = "Vygenerováno za"+document.getElementById("time").innerHTML.replace(/,/,"")+" sekund";
        document.getElementsByName("searchFor")[0].setAttribute("placeholder","Hledat");
        
        if(document.getElementsByClassName("closed")[0] && !document.getElementById("zamceno")){
            document.getElementById("newreply").style.display = "block";
        };
        
        if((document.getElementById("zamceno") || !document.getElementsByClassName("logininfo")[0]) && !document.getElementById("neprihlasen")){
            var userInfo = document.createElement("p");
            document.getElementsByTagName("body")[0].appendChild(userInfo);
            userInfo.className = "logininfo";
            userInfo.innerHTML = '<script src="/upozorneni.js" charset="utf-8"></script> Přihlášen/a jako: <b id="user_usr">Fisir</b> &raquo; <a href="./?mode=logout" onclick="return confirm(\'Opravdu odhlásit?\');">Odhlásit</a>';
        };
        
        if(document.getElementById("neprihlasen")){
            var userInfo = document.createElement("p");
            document.getElementsByTagName("body")[0].appendChild(userInfo);
            userInfo.className = "logininfo";
            userInfo.innerHTML = 'Přihlášen jako: <b id="user_usr">Nepřihlášen</b>';
        };
        
        if(window.location.hash){
            window.scrollBy(0,-59);
        };
    };
};

U řádku 17 to píše: Uncaught SyntaxError: Unexpected token u. Kód se má vykonat v případě, že přes JSON dostane nastaveni.styles jinou hodnotu než off.
To samé při úpravách Webylonu:
if(domena == "www.webylon.info" || domena == "webylon.info"){
    var nastaveni = JSON.parse(ajax("http://plugin.j-jaburek.tk/intfiles/settings.php?for=djpw&action=read"));
    if(nastaveni.styles != "off"){
        var dokument = document.getElementsByTagName("html")[0];
        if(dokument.id == "Webylon-red" && h >= 20){
            dokument.style.background = "#333333";
        };
    };
};
Keeehi
Profil
Fisir:
Protože máš špatně ten AJAX. AJAX je asynchronní (má to i v názvu), takže po xmlhttp.send(); funkce končí. Ta anonymní funkce se vykoná prostě až někdy.

function ajax(url) {
    var httpRequest;
    
    if(typeof window.ActiveXObject != 'undefined') {
        httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
    } else {  
        httpRequest = new XMLHttpRequest();
    }

    httpRequest.open("GET", url, true);
    httpRequest.onreadystatechange= function () {
        processRequest(httpRequest);
    }

    httpRequest.send(null);
}


function processRequest(httpRequest){
    if(httpRequest.readyState == 4 && httpRequest.status == 200){
        if(domena == "diskuse.jakpsatweb.cz"){
            var nastaveni = JSON.parse(httpRequest.responseText);
            if(nastaveni.styles != "off"){
                var styl = document.createElement("link");
                document.getElementsByTagName("head")[0].appendChild(styl);
                styl.setAttribute("rel","stylesheet");
                styl.setAttribute("href","http://plugin.j-jaburek.tk/djpw/djpw.css");
                document.getElementById("time").innerHTML = "Vygenerováno za"+document.getElementById("time").innerHTML.replace(/,/,"")+" sekund";
                document.getElementsByName("searchFor")[0].setAttribute("placeholder","Hledat");

                if(document.getElementsByClassName("closed")[0] && !document.getElementById("zamceno")){
                    document.getElementById("newreply").style.display = "block";
                }

                if((document.getElementById("zamceno") || !document.getElementsByClassName("logininfo")[0]) && !document.getElementById("neprihlasen")){
                    var userInfo = document.createElement("p");
                    document.getElementsByTagName("body")[0].appendChild(userInfo);
                    userInfo.className = "logininfo";
                    userInfo.innerHTML = '<script src="/upozorneni.js" charset="utf-8"></script> Přihlášen/a jako: <b id="user_usr">Fisir</b> &raquo; <a href="./?mode=logout" onclick="return confirm(\'Opravdu odhlásit?\');">Odhlásit</a>';
                }

                if(document.getElementById("neprihlasen")){
                    var userInfo = document.createElement("p");
                    document.getElementsByTagName("body")[0].appendChild(userInfo);
                    userInfo.className = "logininfo";
                    userInfo.innerHTML = 'Přihlášen jako: <b id="user_usr">Nepřihlášen</b>';
                }

                if(window.location.hash){
                    window.scrollBy(0,-59);
                }
            }
        }
    }
}


ajax("http://plugin.j-jaburek.tk/intfiles/settings.php?for=djpw&action=read");

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: