Главная страницаМультитул ⟶ Орфография через Яндекс.Спеллер на JavaScript (вы здесь)
Внимание: на странице представлен экспериментальный Javascript-код, который может сломать вёрстку сайта.

Орфография через Яндекс.Спеллер на Javascript

Yandex.Speller проверяет и исправляет правописание

На русском и английском языках.
Исбравление ашибок на страницце

Код для сайта

Если вам нужно разместить на своём сайте в виде виджета
<script defer>
    function correctPageGreenOnly() {
        var text = document.body.innerHTML;
        text = text.replace(/<.*?>/g, " "), text = text.replace(/а-яА-ЯёЁ/g, " "), text = text.replace(/\s+/g, " ");
        var fragments = splitByLimit(text, 1e4);
        for (var i = 0, len = fragments.length; i < len; i++) checkAndReplace(fragments[i])
    }

    function splitByLimit(text, limit) {
        var fragments = [],
            words = text.split(" "),
            fragment = [],
            fragmentLen = 0;
        for (var i = 0; i < words.length; i++) {
            var word = words[i];
            fragmentLen + word.length * 6 > limit && (fragments.push(fragment.join(" ")), fragment = [], fragmentLen = 0), fragment.push(word), fragmentLen += word.length * 6 + 3, i == words.length - 1 && fragments.push(fragment.join(" "))
        }
        return fragments
    }

    function checkAndReplace(text) {
        var xhr = new XMLHttpRequest;
        xhr.onreadystatechange = function() {
            this.readyState == 4 && (xhr.status == 200 ? (data = JSON.parse(xhr.responseText), replaceWordsGrn(data)) : console.log(xhr.status))
        }, xhr.open("GET", "https://speller.yandex.net/services/spellservice.json/checkText?options=7&text=" + text, !0), xhr.send()
    }

    function replaceWordsGrn(data) {
        if (!data) return;
        var body = document.body.innerHTML;
        for (var i = 0, len = data.length; i < len; i++) {
            var subst = data[i];
            if (subst.s.length !== 0 && subst.word.length > 4) {
                var replacement = '<span style="font-weight: bold;background-color: #cfc">' + subst.s[0] + " </span>";
                replacement += '<span style="text-decoration:line-through;background-color:#fcc"><span>' + subst.word.split("").join("</span><span>") + "</span></span>";
                var regexp = new RegExp(subst.word);
                body = body.replace(regexp, replacement)
            }
        }
        document.body.innerHTML = body
    }
</script>

Код для браузера

Если вам нужна под рукой кнопка, чтобы проверять правописание на любых страницах
javascript:(function()%7Bfunction%20main()%7Bvar%20text=document.body.innerHTML;text=text.replace(/%3C.*?%3E/g,%22%20%22),text=text.replace(/%5B%5E%D0%B0-%D1%8F%D0%90-%D0%AF%D1%91%D0%81%5D/g,%22%20%22),text=text.replace(/%5Cs+/g,%22%20%22);var%20fragments=splitByLimit(text,1e4);for(var%20i=0,len=fragments.length;i%3Clen;i++)checkAndReplace(fragments%5Bi%5D)%7Dfunction%20splitByLimit(text,limit)%7Bvar%20fragments=%5B%5D,words=text.split(%22%20%22),fragment=%5B%5D,fragmentLen=0;for(var%20i=0;i%3Cwords.length;i++)%7Bvar%20word=words%5Bi%5D;fragmentLen+word.length*6%3Elimit&&(fragments.push(fragment.join(%22%20%22)),fragment=%5B%5D,fragmentLen=0),fragment.push(word),fragmentLen+=word.length*6+3,i==words.length-1&&fragments.push(fragment.join(%22%20%22))%7Dreturn%20fragments%7Dfunction%20checkAndReplace(text)%7Bvar%20xhr=new%20XMLHttpRequest;xhr.onreadystatechange=function()%7Bthis.readyState==4&&(xhr.status==200?(data=JSON.parse(xhr.responseText),replaceWords(data)):console.log(xhr.status))%7D,xhr.open(%22GET%22,%22https://speller.yandex.net/services/spellservice.json/checkText?options=7&text=%22+text,!0),xhr.send()%7Dfunction%20replaceWords(data)%7Bif(!data)return;var%20body=document.body.innerHTML;for(var%20i=0,len=data.length;i%3Clen;i++)%7Bvar%20subst=data%5Bi%5D;if(subst.s.length!==0&&subst.word.length%3E4)%7Bvar%20replacement='%3Cspan%20style=%22font-weight:%20bold;background-color:%20%23cfc%22%3E'+subst.s%5B0%5D+%22%20%3C/span%3E%22;replacement+='%3Cspan%20style=%22text-decoration:line-through;background-color:%23fcc%22%3E%3Cspan%3E'+subst.word.split(%22%22).join(%22%3C/span%3E%3Cspan%3E%22)+%22%3C/span%3E%3C/span%3E%22;var%20regexp=new%20RegExp(subst.word);body=body.replace(regexp,replacement)%7D%7Ddocument.body.innerHTML=body%7Dmain()%7D)();
Made on
Tilda