writing demo

voice back adding hover

by cory a

HTML

<script src="//cdn.tinymce.com/4/tinymce.min.js"></script>

<textarea id="box" ></textarea>

<div id="out">

</div>
<div id='last'>

</div>
<div id='cur'>

</div>
<div id="log">

</div>
<div id='temp'>

</div>

JavaScript

//set variables
//textbox
var boxEl = document.getElementById("box");
var out = document.getElementById("out");
var log = document.getElementById("log");
var last = document.getElementById("last");
var cur = document.getElementById("cur");
var temp = document.getElementById("temp");
//last character pressed
var lastChar

//When space bar is selected, find out if it is end of a word, or the end of a sentence
boxEl.addEventListener("keyup", function(e) {
//toremove
	last.textContent = "last char: " + lastChar;
	
  if (e.keyCode == 32 && lastChar === 190) {
    //period plus space - end of sentence
    getSentence()
  } else if (e.keyCode == 32 && lastChar === 16) {
		 //space and shift - could mean ! or ? ending
		 var caretPos = getCaretPos(boxEl)
		 var str = boxEl.value
		 var punctuation = str.charAt(caretPos - 2)
		 //test for ! or ?
		 if(punctuation === "!" || punctuation === "?" ) {
			getSentence()
		 }
		 
  } else if (e.keyCode == 32) {
    //space - end of word 
    getPrevWord()
  }
  lastChar = e.keyCode
	//to remove
	cur.textContent = "cur char: " + lastChar;
	log.textContent = "char pos: " + getCaretPos(boxEl)
});

//get the previous word 
function getPrevWord() {
  var caretPos = getCaretPos(boxEl)
	
  var word = returnWord(boxEl.value, caretPos);
  if (word != " ") {
    speaker(word)
  }
}

function returnWord(text, caretPos) {
  
  var preText = text.substring(0, caretPos);
  if (preText.indexOf(" ") > 0) {
    var words = preText.split(" ");
    return words[words.length - 2]; //return last word
  } else {
    return preText;
  }
}

//get previous sentence functions
function getSentence() {
  var caretPos = getCaretPos(boxEl)
	//get value from start to caret
	var txt = boxEl.value.substring(0, caretPos)
	//extract the sentence from it
  var sentence = returnSent(txt, caretPos);
	//if the sentence is not blank, speak it
  if (sentence != " ") {
    speaker(sentence)
  }
}

function returnSent(text, caretPos) {
  //take off last punctuation and...