Reuben Reuben - 3 months ago 16
HTML Question

Decoding & in an appended javascript url

Am trying to decode &amp back to & and I have tried with the below means, pls, where is my error?

Method tried:
Replace & to &

MY CODE:

Let us see if the codes are working the right way now

<style>
.mistake {
color: red;
}
.mistake2 {
color: red;
}
</style>

<script type="text/JavaScript">
var main = document.getElementById("test").innerHTML;
function jivetransact(text) {
var words = text.split(" ");
for (var i = 0; i < words.length; ++i)
{
// Pull the word from our array.
var word = words[i];
if (i == 7) // spellcheck logic here.
{
// Push this content to the array.
var n = word;


}
} var words2 = text.split(" ");

// Loop through the sentences.
for (var j = 0; j < words2.length; ++j)
{
// Pull the word from our array.
var word2 = words2[j];
if (j == 4) // spellcheck logic here.
{
var m = word2;
} }
var a = document.createElement('a');
var linkText = document.createTextNode("VALIDATE PAYMENT if not auto redirected");
a.appendChild(linkText);
a.title = "mistake2";
a.class = "mistake";
a.href = "http://jivetransact.wapka.mobi/site_2.html?me=" + m + "&amp;my=" + n + "";
var div = document.createElement('div');
div.innerHTML = a
var decoded = div.firstChild.nodeValue;

document.body.appendChild(a);

}
jivetransact(main);
</script>

Answer

Please try this:

I've added a decodeHtml function. This will decode your a.href.

function decodeHtml(html) {
    var txt = document.createElement("textarea");
    txt.innerHTML = html;
    return txt.value;
}

var main = document.getElementById("test").innerHTML;
function jivetransact(text) {
 var words    = text.split(" ");    
 for (var i = 0; i < words.length; ++i)
{
// Pull the word from our array.
var word = words[i];
if (i == 7) // spellcheck logic here.
{
  // Push this content to the array.
 var n = word;


}
}  var words2  = text.split(" ");

// Loop through the sentences.
for (var j = 0; j < words2.length; ++j)
 {
// Pull the word from our array.
var word2 = words2[j];
if (j == 4) // spellcheck logic here.
{
var m = word2;
 }  }
var a = document.createElement('a');
var linkText = document.createTextNode("VALIDATE PAYMENT if not auto redirected");
a.appendChild(linkText);
a.title = "mistake2";
a.class = "mistake";
a.href = decodeHtml( "http://jivetransact.wapka.mobi/site_2.html?me=" + m + "&amp;my=" + n + "");
document.body.appendChild(a);

}
jivetransact(main);
<div id='test'></div>