Headline

Cara Membuat Word Counter di Halaman Statis Blogger

Mesothelioma is a form of cancer which occurs in thin membranes (called the mesothelium) lining the chest, lungs, abdomen and sometimes the heart. Although quite rare, mesothelioma symptoms strike more than 200 people each year in the United States. The majority of mesothelioma cases are directly linked to asbestos exposure. Because of the long latency period of mesothelioma, the average age of patients is between 50 and 70 years. Mesothelioma affects men most due to the high exposure of asbestos in industrial typed jobs. Mesothelioma symptoms include respiratory problems, shortness of breath, continual cough and pneumonia. Other mesothelioma symptoms include weight loss, abdominal problems and swelling. In some mesothelioma patients, the mesothelioma symptoms are quite muted, making it hard for mesothelioma doctors to diagnose. Mesothelioma doctors specialize in the study, research, and treatments of Mesothelioma cancers. Mesothelioma (or the cancer of the mesothelium) is a disease in which cells become abnormal and replicate without control. During Mesothelioma, these cells will invade and damage tissues and organs. Mesothelioma cancer cells can spread throughout the body causing death. Mesothelioma treatments and Mesothelioma clinical trials and tests There are many mesothelioma treatment options available. Treatments include surgery, radiation therapy and chemotherapy and the mesothelioma treatment depends on the patient’s age, general health and stage of the cancer. There has been much mesothelioma research conducted throughout the past two years to find new treatment methods. Click here to read more about mesothelioma treatment techniques. Through mesothelioma research, The National Cancer Institute has sponsored mesothelioma tests and clinical trials that are designed to find new treatment methods. Because of the increase in number of mesothelioma cases in the United States, both governments have increased funding for mesothelioma research. Mesothelioma research and clinical trials have been successful in developing new techniques to fight this cancer and the outlook for more advanced mesothelioma treatments is promising. Surgery is the most common treatment method for malignant mesothelioma. Tissues and linings affected by mesothelioma are removed by the doctor and may include the lung or even diaphragm. A second mesothelioma treatment method is radiation therapy through the use of high energy x-rays that kill the cancer cells. Radiation therapy can be outside or inside the body. A third mesothelioma treatment method is chemotherapy. Through pills or drugs through needles, chemotherapy drugs are used to kill cancer cells. A new mesothelioma treatment method is called intraoperative photodynamic therapy. In this treatment, light and drugs are used to kill cancer cells during surgery for early stages of mesothelioma in the chest. Although there are numerous treatments and drugs for mesothelioma, doctors are losing the battle against this deadly disease. Most mesothelioma treatments involve old techniques combined with different drug cocktails. However, in most cases, these mesothelioma treatments have many side effects including organ damage, nausea, increase in heart failure etc. The rush to find a more effective mesothelioma treatment or even cure is ongoing at numerous clinical labs across the nation. Let's hope that the mesothelioma treatments will one day erradicate mesothelioma cancer and asbestosis. With an abundance of information on the Internet, Mesothelioma Cancer and Asbestos ([http://www.mesothelioma-cancer-and-asbestos.com]) has consolidated the most important issues surrounding Mesothelioma, Mesothelioma doctors and symptoms, Mesothelioma treatment, Mesothelioma research and tests. At [http://www.mesothelioma-cancer-and-asbestos.com], the website contains useful resources on Mesothelioma lawyers and attorneys, as well as causes by asbestos exposure, asbestos removal, asbestos attorneys and lawsuits, and asbestos cancer. Patients stricken by Mesothelioma and their families require support and current information. Mesothelioma Online Resources hopes to educate and give hope to survivors and victims. Mesothelioma is such a harsh disease. Not only does it take years for symptoms to appear, but there are limited treatements and drugs that will prolong the lives of workers stricken with mesothelioma. In many cases, the death rate of mesothelioma is unfortunately very high. However, with increased funding in mesothelioma research through the government and private grants, the outlook for a mesothelioma cure is quite possible. In the meantime, mesothelioma support groups and local discussions provide the ongoing support for mesothelioma patients. Mesothelioma Cancer and Asbestos ([http://www.mesothelioma-cancer-and-asbestos.com])is your source for mesothelioma and asbestos information, treatments, clinical trials, attorneys, support groups and lawyers. About the website: Michael Kenneth is a successful Internet Publisher and has researched and written on many topics for [http://www.mesothelioma-cancer-and-asbestos.com] - your complete source for mesothelioma information, mesothelioma attorneys and lawyers, mesothelioma treatments and research, asbestos exposure and removal, asbestos attorneys and legislation as well as asbestos cancer.
Masih tetap dengan konten yang sama, pada post kali ini admin akan memberikan sebuah alat yang berguna untuk menghitung kata pada artikel dan tentunya kalian bisa memasangnya sendiri pada halaman statis blogger. Pada umumnya tools ini ada pada sebuah blog tidak lain untuk membantu penulis mengetahui jumlah karakter yang sedang mereka tulis dan ingin publikasikan.

Pemasangan word counter ini sendiri sebenarnya tidak mempengaruhi nilai SEO sebuah blog, akan tetapi hasilnya lah yang mempengaruhi. Dengan adanya alat ini penulis bisa dengan mudah untuk mengetahui jumlah karakter, kata, dan keyword yang sedang di tulis untuk memenuhi kriteria SEO yang telah ditentukan untuk sebuah blog.

Membuat halaman word counter ini pertama kali kami terapkan dikarenakan malas mengunjungi website orang lain setiap kali ingin memposting sebuah artikel. Selain itu, tools ini juga sering kami gunakan untuk memaksimalkan kata dalam meta deskripsi. Bailah, tanpa basa basi lagi sekarang kita lanjutkan ke cara pemasangannya.

Pada artikel ini, admin telah menyiapkan 3 style Word Counter yang bisa digunakan di halaman statis blogger.

Cara Pemasangan

Langkah 1
Pastikan kalian sudah login ke akun Blogger.

Langkah 2
Pada dashboard blogger, pilih menu Pages > New Page (seperti pada gambar dibawah ini).

Langkah 3
Tulis judul halaman yang kalian inginkan, pada tab mode penulisan pilih HTML bukan Compose  

Langkah 4
Kemudian pilih style yang kalian inginkan, lalu masukkan kode tersebut ke dalam kotak penulisan HTML

Langkah 5
Setelah selesai, jangan lupa untuk Publikasikan.

Perlu diketahui bahwa 3 style yang kami sediakan sudah dicoba dan hasilnya semua responsive, jadi kalian tidak perlu khawatir tampilan akan acak-acakan ketika dipasang. Adapun 3 style tersebut bisa kalian lihat dibawah ini,

3 Style Words Counter

Style Pertama
(salin kode dibawah ini) - DEMO
<div id="border">
<textarea id="text" placeholder="Write or copy and paste your document here..." spellcheck="false"></textarea>
</div>
<div class="button-group">
<button id="count">Count</button>
<br />
<div id="result">
<br />
Words: <span id="wordCount">0</span>
<br />
Total Characters(including trails): <span id="totalChars">0</span>
<br />
Characters (excluding trails): <span id="charCount">0</span>
<br />
Characters (excluding all spaces): <span id="charCountNoSpace">0</span></div>
</div>
<style scoped="" type="text/css">
.breadcrumbs{display:none}
#border{background:#ecf0f1;position:relative;display:block;clear:both;border-radius:5px;padding:20px;border:1px solid rgba(0,0,0,0.05)}
#result{margin:10px auto 30px;color:rgba(255,2255,255,.6)}
#count{background:rgba(255,255,255,0.2);text-align:center;color:#fefefe;display:inline-block;padding:6px 12px;font-size:14px;font-weight:400;line-height:1.471;border-radius:4px;margin:0 5px;border:0;transition:all .1s}
textarea{width:100%;height:240px;margin:0 auto;display:block;background-color:#fff;padding:20px;font:normal 13px 'Courier New',Monospace;border:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.05);border-radius:5px 5px 0 0;resize:none}
#count:hover,#cssminifier button:active{background:#fff;color:#2980b9}
.button-group{background:#2980b9;text-align:center;padding:20px;margin:0;border-radius:0 0 5px 5px;float:none}
.button-group span{vertical-align:2px;line-height:1;color:#fff}
.button-group br{display:none}
</style>
<script>
counter = function() {
    var value = $('#text').val();

    if (value.length == 0) {
        $('#wordCount').html(0);
        $('#totalChars').html(0);
        $('#charCount').html(0);
        $('#charCountNoSpace').html(0);
        return;
    }

    var regex = /\s+/gi;
    var wordCount = value.trim().replace(regex, ' ').split(' ').length;
    var totalChars = value.length;
    var charCount = value.trim().length;
    var charCountNoSpace = value.replace(regex, '').length;

    $('#wordCount').html(wordCount);
    $('#totalChars').html(totalChars);
    $('#charCount').html(charCount);
    $('#charCountNoSpace').html(charCountNoSpace);
};

$(document).ready(function() {
    $('#count').click(counter);
    $('#text').change(counter);
    $('#text').keydown(counter);
    $('#text').keypress(counter);
    $('#text').keyup(counter);
    $('#text').blur(counter);
    $('#text').focus(counter);
});
</script>

Style Kedua
(salin kode dibawah ini) - DEMO
<div style="text-align: center;">
<span style="font-size: large;">Word Count by <b><a href="http://www.sempetin.my.id/" target="_blank">Sempetin</a></b></span>
<span style="font-size: large;">
</span></div>
<iframe src="https://www.prepostseo.com/widget/wordcount" style="border: 0; height: 100%; min-height: 1000px; width: 100%;"></iframe>

Style Ketiga
(salin kode dibawah ini) - DEMO
<style type="text/css">
 /* border box */

html {
  box-sizing: border-box;
  -webkit-user-select: none;
  /* Chrome all / Safari all */
  -moz-user-select: none;
  /* Firefox all */
  -ms-user-select: none;
  /* IE 10+ */
  user-select: none;
  /* Likely future */
}

*,
*:before,
*:after {
  box-sizing: inherit;
}

b {
  font-weight: bold;
}


/* main app styles */

body {
  width: 700x;
  margin: 0 auto;
  background-color: #FAFAFA;
  font-family: 'Source Sans Pro', sans-serif;
  color: #111;
}

.container {
  margin: 2% auto;
  padding: 15px;
  background-color: #FFFFFF;
  -webkit-box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.2);
  box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.2);
}

h1 {
  font-size: 3rem;
  font-weight: 900;
  text-align: center;
  margin: 1% 0 3%;
}

textarea {
  width: 100%;
  height: 250px;
  padding: 10px;
  border: 1px solid #d9d9d9;
  outline: none;
  font-size: 1rem;
  resize: none;
  line-height: 1.5rem;
}

textarea:hover {
  border-color: #C0C0C0;
}

textarea:focus {
  border-color: #4D90FE;
}

.output.row {
  width: 100%;
  border: 1px solid #DDD;
  font-size: 1.4rem;
  margin: 1% 0;
  background-color: #F9F9F9;
}

.output.row div {
  display: inline-block;
  width: 42%;
  padding: 10px 15px;
  margin: 1%;
}

.output.row span {
  font-weight: bold;
  font-size: 1.5rem;
}

#readability {
  width: 52%;
  font-weight: bold;
}

#readability:hover {
  background-color: #4D90FE;
  color: #FFF;
  border-radius: 2px;
  cursor: pointer;
}

#readability:active {
  background-color: #307AF3;
}

.keywords {
  display: none;
  margin: 4% 0 0;
  font-size: 2rem;
  font-weight: 900;
}

.keywords ul {
  font-weight: 400;
  border: 1px solid #DDD;
  font-size: 1.4rem;
  background-color: #F9F9F9;
  margin: 2% 0;
}

.keywords li {
  display: inline-block;
  width: 44%;
  padding: 10px;
  margin: 1%;
}


/* 
** Making it responsive
*/

@media (max-width: 750px) {
  body {
    width: 600px;
  }
  .output.row {
    font-size: 1.2rem;
  }
  .output.row span {
    font-size: 1.3rem;
  }
  .keywords ul {
    font-size: 1.2rem;
  }
}

@media (max-width: 600px) {
  /* rewriting old styles */
  body {
    width: 100%;
  }
  .output.row {
    border: none;
    background-color: #FFF;
  }
  .output.row div {
    display: block;
    width: 100%;
    padding: 10px 15px;
    margin: 2% auto;
    border: 1px solid #DDD;
    font-size: 1.8rem;
    background-color: #F9F9F9;
  }
  .output.row span {
    font-size: 2rem;
  }
  #readability {
    width: 100%;
    font-size: 1.6rem;
    font-weight: 400;
  }
  .keywords {
    margin: 10% auto;
  }
  .keywords ul {
    font-weight: 400;
    border: none;
    font-size: 1.8rem;
    background-color: #F9F9F9;
    margin: 5% 0;
  }
  .keywords li {
    display: block;
    width: 100%;
    padding: 10px;
    margin: 2% auto;
    border: 1px solid #DDD;
  }
}
</style>
 <br />
<div class="container">
<h1>
Word Counter</h1>
<textarea placeholder="Enter your text here..."></textarea>
  <br />
<div class="output row">
<div>
Characters: <span id="characterCount">0</span></div>
<div>
Words: <span id="wordCount">0</span></div>
</div>
<div class="output row">
<div>
Sentences: <span id="sentenceCount">0</span></div>
<div>
Paragraphs: <span id="paragraphCount">0</span></div>
</div>
<div class="output row">
<div>
Reading Time: <span id="readingTime">0</span></div>
<div id="readability">
Show readability score.</div>
</div>
<div class="keywords">
Top keywords:
    <br />
<ul id="topKeywords">
    </ul>
</div>
</div>
<script type="text/javascript">
 /*
 **
 ** User stories:
 ** - Shows number of characters, words, sentences, paragraphs - Done
 ** - Show reading time - Done
 ** - Show keyword count - Done
 ** - Show reading level (Optional - how?) - Done
 ** - Above data should change/appear on every keypress - Done
 **
 */

// Readability (Mashape) API Key for testing: PQ4FOFuaR6mshI6qpnQKQvkDZQXjp1o6Zcqjsnug7GvNggTzUE

"use strict";
var input = document.querySelectorAll('textarea')[0],
  characterCount = document.querySelector('#characterCount'),
  wordCount = document.querySelector('#wordCount'),
  sentenceCount = document.querySelector('#sentenceCount'),
  paragraphCount = document.querySelector('#paragraphCount'),
  readingTime = document.querySelector('#readingTime'),
  readability = document.querySelector('#readability'),
  keywordsDiv = document.querySelectorAll('.keywords')[0],
  topKeywords = document.querySelector('#topKeywords');

// updating the displayed stats after every keypress
input.addEventListener('keyup', function() {

  //keeping the console clean to make only the latest data visible
  console.clear();

  // character count
  // just displaying the input length as everything is a character
  characterCount.innerHTML = input.value.length;

  // word count using \w metacharacter - replacing this with .* to match anything between word boundaries since it was not taking 'a' as a word.
  // this is a masterstroke - to count words with any number of hyphens as one word
  // [-?(\w+)?]+ looks for hyphen and a word (we make both optional with ?). + at the end makes it a repeated pattern
  // \b is word boundary metacharacter
  var words = input.value.match(/\b[-?(\w+)?]+\b/gi);
  // console.log(words);
  if (words) {
    wordCount.innerHTML = words.length;
  } else {
    wordCount.innerHTML = 0;
  }

  // sentence count using ./!/? as sentense separators
  if (words) {
    var sentences = input.value.split(/[.|!|?]+/g);
    console.log(sentences);
    sentenceCount.innerHTML = sentences.length - 1;
  } else {
    sentenceCount.innerHTML = 0;
  }

  // paragraph count from http://stackoverflow.com/a/3336537
  if (words) {
    // \n$ takes care of empty lines: lines with no characters, and only \n are not paragraphs
    // and need to be replaced with empty string
    var paragraphs = input.value.replace(/\n$/gm, '').split(/\n/);
    paragraphCount.innerHTML = paragraphs.length;
  } else {
    paragraphCount.innerHTML = 0;
  }
  // console.log(paragraphs);

  // reading time based on 275 words/minute
  if (words) {
    var seconds = Math.floor(words.length * 60 / 275);
    // need to convert seconds to minutes and hours
    if (seconds > 59) {
      var minutes = Math.floor(seconds / 60);
      seconds = seconds - minutes * 60;
      readingTime.innerHTML = minutes + "m " + seconds + "s";
    } else {
      readingTime.innerHTML = seconds + "s";
    }
  } else {
    readingTime.innerHTML = "0s";
  }

  // finding out top keywords and their count
  // step-1: remove all the stop words
  // step-2: form an object with keywords and their count
  // step-3: sort the object by first converting it to a 2D array
  // step-4: display top 4 keywords and their count

  if (words) {

    // step-1: removing all the stop words
    var nonStopWords = [];
    var stopWords = ["a", "able", "about", "above", "abst", "accordance", "according", "accordingly", "across", "act", "actually", "added", "adj", "affected", "affecting", "affects", "after", "afterwards", "again", "against", "ah", "all", "almost", "alone", "along", "already", "also", "although", "always", "am", "among", "amongst", "an", "and", "announce", "another", "any", "anybody", "anyhow", "anymore", "anyone", "anything", "anyway", "anyways", "anywhere", "apparently", "approximately", "are", "aren", "arent", "arise", "around", "as", "aside", "ask", "asking", "at", "auth", "available", "away", "awfully", "b", "back", "be", "became", "because", "become", "becomes", "becoming", "been", "before", "beforehand", "begin", "beginning", "beginnings", "begins", "behind", "being", "believe", "below", "beside", "besides", "between", "beyond", "biol", "both", "brief", "briefly", "but", "by", "c", "ca", "came", "can", "cannot", "can't", "cause", "causes", "certain", "certainly", "co", "com", "come", "comes", "contain", "containing", "contains", "could", "couldnt", "d", "date", "did", "didn't", "different", "do", "does", "doesn't", "doing", "done", "don't", "down", "downwards", "due", "during", "e", "each", "ed", "edu", "effect", "eg", "eight", "eighty", "either", "else", "elsewhere", "end", "ending", "enough", "especially", "et", "et-al", "etc", "even", "ever", "every", "everybody", "everyone", "everything", "everywhere", "ex", "except", "f", "far", "few", "ff", "fifth", "first", "five", "fix", "followed", "following", "follows", "for", "former", "formerly", "forth", "found", "four", "from", "further", "furthermore", "g", "gave", "get", "gets", "getting", "give", "given", "gives", "giving", "go", "goes", "gone", "got", "gotten", "h", "had", "happens", "hardly", "has", "hasn't", "have", "haven't", "having", "he", "hed", "hence", "her", "here", "hereafter", "hereby", "herein", "heres", "hereupon", "hers", "herself", "hes", "hi", "hid", "him", "himself", "his", "hither", "home", "how", "howbeit", "however", "hundred", "i", "id", "ie", "if", "i'll", "im", "immediate", "immediately", "importance", "important", "in", "inc", "indeed", "index", "information", "instead", "into", "invention", "inward", "is", "isn't", "it", "itd", "it'll", "its", "itself", "i've", "j", "just", "k", "keep", "keeps", "kept", "kg", "km", "know", "known", "knows", "l", "largely", "last", "lately", "later", "latter", "latterly", "least", "less", "lest", "let", "lets", "like", "liked", "likely", "line", "little", "'ll", "look", "looking", "looks", "ltd", "m", "made", "mainly", "make", "makes", "many", "may", "maybe", "me", "mean", "means", "meantime", "meanwhile", "merely", "mg", "might", "million", "miss", "ml", "more", "moreover", "most", "mostly", "mr", "mrs", "much", "mug", "must", "my", "myself", "n", "na", "name", "namely", "nay", "nd", "near", "nearly", "necessarily", "necessary", "need", "needs", "neither", "never", "nevertheless", "new", "next", "nine", "ninety", "no", "nobody", "non", "none", "nonetheless", "noone", "nor", "normally", "nos", "not", "noted", "nothing", "now", "nowhere", "o", "obtain", "obtained", "obviously", "of", "off", "often", "oh", "ok", "okay", "old", "omitted", "on", "once", "one", "ones", "only", "onto", "or", "ord", "other", "others", "otherwise", "ought", "our", "ours", "ourselves", "out", "outside", "over", "overall", "owing", "own", "p", "page", "pages", "part", "particular", "particularly", "past", "per", "perhaps", "placed", "please", "plus", "poorly", "possible", "possibly", "potentially", "pp", "predominantly", "present", "previously", "primarily", "probably", "promptly", "proud", "provides", "put", "q", "que", "quickly", "quite", "qv", "r", "ran", "rather", "rd", "re", "readily", "really", "recent", "recently", "ref", "refs", "regarding", "regardless", "regards", "related", "relatively", "research", "respectively", "resulted", "resulting", "results", "right", "run", "s", "said", "same", "saw", "say", "saying", "says", "sec", "section", "see", "seeing", "seem", "seemed", "seeming", "seems", "seen", "self", "selves", "sent", "seven", "several", "shall", "she", "shed", "she'll", "shes", "should", "shouldn't", "show", "showed", "shown", "showns", "shows", "significant", "significantly", "similar", "similarly", "since", "six", "slightly", "so", "some", "somebody", "somehow", "someone", "somethan", "something", "sometime", "sometimes", "somewhat", "somewhere", "soon", "sorry", "specifically", "specified", "specify", "specifying", "still", "stop", "strongly", "sub", "substantially", "successfully", "such", "sufficiently", "suggest", "sup", "sure", "t", "take", "taken", "taking", "tell", "tends", "th", "than", "thank", "thanks", "thanx", "that", "that'll", "thats", "that've", "the", "their", "theirs", "them", "themselves", "then", "thence", "there", "thereafter", "thereby", "thered", "therefore", "therein", "there'll", "thereof", "therere", "theres", "thereto", "thereupon", "there've", "these", "they", "theyd", "they'll", "theyre", "they've", "think", "this", "those", "thou", "though", "thoughh", "thousand", "throug", "through", "throughout", "thru", "thus", "til", "tip", "to", "together", "too", "took", "toward", "towards", "tried", "tries", "truly", "try", "trying", "ts", "twice", "two", "u", "un", "under", "unfortunately", "unless", "unlike", "unlikely", "until", "unto", "up", "upon", "ups", "us", "use", "used", "useful", "usefully", "usefulness", "uses", "using", "usually", "v", "value", "various", "'ve", "very", "via", "viz", "vol", "vols", "vs", "w", "want", "wants", "was", "wasn't", "way", "we", "wed", "welcome", "we'll", "went", "were", "weren't", "we've", "what", "whatever", "what'll", "whats", "when", "whence", "whenever", "where", "whereafter", "whereas", "whereby", "wherein", "wheres", "whereupon", "wherever", "whether", "which", "while", "whim", "whither", "who", "whod", "whoever", "whole", "who'll", "whom", "whomever", "whos", "whose", "why", "widely", "willing", "wish", "with", "within", "without", "won't", "words", "world", "would", "wouldn't", "www", "x", "y", "yes", "yet", "you", "youd", "you'll", "your", "youre", "yours", "yourself", "yourselves", "you've", "z", "zero"];
    for (var i = 0; i < words.length; i++) {
      // filtering out stop words and numbers
      if (stopWords.indexOf(words[i].toLowerCase()) === -1 && isNaN(words[i])) {
        nonStopWords.push(words[i].toLowerCase());
      }
    }
    // console.log(nonStopWords);

    // step-2: forming an object with keywords and their count
    var keywords = {};
    for (var i = 0; i < nonStopWords.length; i++) {
      // checking if the word(property) already exists
      // if it does increment the count otherwise set it to one
      if (nonStopWords[i] in keywords) {
        keywords[nonStopWords[i]] += 1;
      } else {
        keywords[nonStopWords[i]] = 1;
      }
    }

    // step-3: sorting the object by first converting it to a 2D array
    var sortedKeywords = [];
    for (var keyword in keywords) {
      sortedKeywords.push([keyword, keywords[keyword]])
    }
    sortedKeywords.sort(function(a, b) {
      return b[1] - a[1]
    });
    // console.log(sortedKeywords);

    // step-4: displaying top 4 keywords and their count
    topKeywords.innerHTML = "";
    for (var i = 0; i < sortedKeywords.length && i < 4; i++) {
      var li = document.createElement('li');
      li.innerHTML = "<b>" + sortedKeywords[i][0] + "</b>: " + sortedKeywords[i][1];
      topKeywords.appendChild(li);
    }
  }

  // displaying top keywords only if there is a word in the text area
  if (words) {
    keywordsDiv.style.display = "block";
  } else {
    keywordsDiv.style.display = "none";
  }

});

// readability level using readability-metrics API from Mashape
readability.addEventListener('click', function() {

  // placeholder until the API returns the score  
  readability.innerHTML = "Fetching score...";

  var requestUrl = "https://ipeirotis-readability-metrics.p.mashape.com/getReadabilityMetrics?text=";
  var data = input.value;

  var request = new XMLHttpRequest();
  request.open('POST', encodeURI(requestUrl + data), true);
  request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
  request.setRequestHeader("X-Mashape-Authorization", "PQ4FOFuaR6mshI6qpnQKQvkDZQXjp1o6Zcqjsnug7GvNggTzUE");
  request.send();

  request.onload = function() {
    if (this.status >= 200 && this.status < 400) {
      // Success!
      readability.innerHTML = readingEase(JSON.parse(this.response).FLESCH_READING);
    } else {
      // We reached our target server, but it returned an error
      readability.innerHTML = "Not available.";
    }
  };

  request.onerror = function() {
    // There was a connection error of some sort
    readability.innerHTML = "Not available.";
  };
});

// function to convert FLESCH READING SCORE into meaningful string.
function readingEase(num) {
  switch (true) {
    case (num <= 30):
      return "Readability: College graduate.";
      break;
    case (num > 30 && num <= 50):
      return "Readability: College level.";
      break;
    case (num > 50 && num <= 60):
      return "Readability: 10th - 12th grade.";
      break;
    case (num > 60 && num <= 70):
      return "Readability: 8th - 9th grade.";
      break;
    case (num > 70 && num <= 80):
      return "Readability: 7th grade.";
      break;
    case (num > 80 && num <= 90):
      return "Readability: 6th grade.";
      break;
    case (num > 90 && num <= 100):
      return "Readability: 5th grade.";
      break;
    default:
      return "Not available.";
      break;
  }
}
</script>
Jika ada yang belum dimengerti, silahkan kalian tanyakan melalui kolom komentar yang ada di bawah artikel (sesuai topik). Sebisa mungkin akan kami balas secepatnya jika tidak ada kesibukan.

Mungkin sekian dulu yang bisa kami bagi, semoga bermanfaat dan menambah pengetahuan kalian seputar dunia blogging.
Terima kasih
web hosting surabaya cpanel web hosting beli web hosting daftar domain membuat web hosting jakarta web hosting wordpress hosting indonesia indo web hosting web hosting termurah hosting indonesia gratis singapore hosting sewa web hosting hosting tangguh buy hosting vps hosting indonesia web hosting indonesia terbaik web hosting indonesia gratis web hosting terbaik hosting web beli domain dan hosting murah web hosting murah beli hosting murah daftar web hosting shared hosting murah web hosting murah unlimited web hosting indonesia web hosting terbaik indonesia hosting murah unlimited review hosting indonesia 70 Rp 2.03 0.47 web hosting terbaik di indonesia 90 Rp 1.96 0.46 hosting terbaik 1600 Rp 1.91 0.42 sewa hosting murah 30 Rp 1.9 0.79 hosting indonesia terbaik 390 Rp 1.89 0.4 paket hosting murah 40 Rp 1.87 0.96 vps hosting murah 30 Rp 1.85 0.97 jasa web hosting 30 Rp 1.78 0.73 hosting terbaik indonesia 880 Rp 1.77 0.44 web hosting murah indonesia 70 Rp 1.77 0.71 best hosting indonesia 90 Rp 1.7 0.62 hosting murah 5400 Rp 1.7 0.93 domain id 1000 Rp 1.69 0.45 hosting cpanel 110 Rp 1.69 0.61 hosting dan domain 210 Rp 1.66 0.64 hosting free 880 Rp 1.66 0.64 top 10 web hosting indonesia 50 Rp 1.64 0.67 bisnis hosting 50 Rp 1.63 0.43 jual domain murah 210 Rp 1.62 0.89 web hosting gratis 2900 Rp 1.62 0.55 beli domain dan hosting 590 Rp 1.6 0.68 domain hosting indonesia 50 Rp 1.6 0.82 beli hosting 390 Rp 1.58 0.72 bisnis web hosting 20 Rp 1.57 0.73 email hosting indonesia 260 Rp 1.56 0.46 membuat server hosting sendiri 70 Rp 1.52 0.16 free hosting and domain 480 Rp 1.51 0.64 harga domain 880 Rp 1.49 0.51 telkom hosting 90 Rp 1.49 0.1 hosting indonesia murah 90 Rp 1.46 0.88 hosting terbaik di indonesia 210 Rp 1.46 0.5 cara hosting web 480 Rp 1.44 0.38 unlimited hosting 140 Rp 1.44 0.92 biznet hosting 140 Rp 1.42 0.22 unlimited hosting indonesia 50 Rp 1.42 0.88 top hosting indonesia 30 Rp 1.41 0.58 hosting yang bagus 50 Rp 1.4 0.48 asian brain hosting 40 Rp 1.39 0.19 domain dan hosting murah 170 Rp 1.39 0.94 domain hosting murah 320 Rp 1.37 0.63 cara beli domain 320 Rp 1.35 0.48 beli domain murah 880 Rp 1.34 0.72 plasa hosting 260 Rp 1.34 0.15 hosting murah indonesia jagoan hosting surabaya jual domain hosting server indonesia cara pindah hosting pasarhosting sewa domain webhost cpanel hosting hosting murah berkualitas domain dan hosting harga hosting membuat server hosting daftar hosting harga hosting dan domain windows hosting indonesia jasa hosting terbaik jasa hosting murah hosting indonesia domain paling murah hosting termurah indonesia pengertian domain dan hosting hosting gratis terbaik domain dan hosting gratis