我的IE和Chrome浏览器无法正确显示法国短语,当我从法国短语(的onload功能)去一个英文词组(onmousedown事件功能),回到法国短语(onmouseup功能)。当我让她对一个特定短语的鼠标,又回到法国,但对于O和E中的特殊字符(这是ôé)没有从数字代码的O和E更改。谁能告诉我,为什么它是这样做的,我该如何解决这个问题?

下面是我的JavaScript代码:

 /* 
   Function List: 
   eventSource(e) 
      Returns the source of an event in either event model 

   swapFE(phrase, pnum) 
      Changes a French phrase to the English version of that phrase. 

   swapEF(phrase, pnum) 
      Changes an English phrase ot the Frech version of that phrase. 

   setUpTranslation() 
      Insert the current week's french phrases into document and set up 
      event handlers for the phrases. 
*/ 

//Returns the source of an event in either event model 
function eventSource(e) { 
   var IE = document.attachEvent ? true:false; 
   var DOM = document.addEventListener ? true: false; 
   if (IE) return event.srcElement; 
   else if (DOM) return e.currentTarget; 
} 
//I added the function below to try and make it cross-browser compatible but it did not work....help! 
//function applysetUpTranslation(phrases[i],"click",swapFE(e),false) { 
//if (IE) phrases[i].attachEvent("on"+onmousedown, swapFE(e)); 
//else if (DOM) phrases[i].addEventListener(click,swapFE(e),true); 
//} 


function setUpTranslation() { 
   var IE = document.attachEvent ? true:false; 
   var DOM = document.addEventListener ? true: false; 
   var phrasesContainer = document.getElementById("phrases"); 
   var phrases= phrasesContainer.getElementsByTagName("p"); 

   for (i = 0; i<phrases.length; i++) { 
      phrases[i].number = i; 
      phrases[i].childNodes[1].innerHTML = french[i]; 
      phrases[i].childNodes[1].id = i; 

//childNodes[1] is the second span in the <p> array 
    if (IE) {
        phrases[i].childNodes[1].onmousedown = function() { swapFE(event); }; 
    } else {
        phrases[i].childNodes[1].onmousedown = swapFE; 
    }

    if (IE) {
        phrases[i].childNodes[1].onmouseup = function() { swapEF(event); };  
    } else {
        phrases[i].childNodes[1].onmouseup = swapEF;   
    } 

  } 

} 

//this function changes the French phrase to an English phrase. 
function swapFE(e) { 
       var phrase = eventSource(e); 
       //phrase.innerText = english[phrase.id]; 
       var parent = phrase.parentNode; 
       //childNodes[0] is the number of the phrase +1  
       var idnum = parent.childNodes[0]; 
       //parseInt takes a textstring and extracts it to make a number. Then you will subtract 1 from the number. 
       var phrasenum = parseInt(idnum.innerHTML)-1; 
       phrase.innerText = english[phrasenum]; 
       parent.childNodes[1].style.fontStyle= "normal"; 
       parent.childNodes[1].style.color = "rgb(155, 102, 102)"; 
  } 


function swapEF(e) { 
        var phrase = eventSource(e);
       //var phrase = e.srcElement;  
       //phrase.innerText = english[phrase.id]; 
       var parent = phrase.parentNode; 
       var idnum = parent.childNodes[0]; 
       var phrasenum = parseInt(idnum.innerHTML)-1; 
       phrase.innerText = french[phrasenum]; 
       parent.childNodes[1].style.fontStyle= "italic"; 
       parent.childNodes[1].style.color= "black"; 
} 

下面是在它与法国阵列JS代码:

    var english=new Array();
english[0]="This hotel isn't far from the Eiffel Tower.";
english[1]="What time does the train arrive?";
english[2]="We have been waiting for the bus for one half-hour.";
english[3]="This meal is delicious";
english[4]="What day is she going to arrive?";
english[5]="We have eleven minutes before the train leaves!";
english[6]="Living in a foreign country is a good experience.";
english[7]="Excuse me! I'm late!";
english[8]="Is this taxi free?";
english[9]="Be careful when you go down the steps.";

var french=new Array();
french[0]="Cet h&#244;tel n'est pas loin de la Tour Eiffel.";
french[1]="A quelle heure arrive le train?";
french[2]="Nous attendons l'autobus depuis une demi-heure.";
french[3]="Ce repas est d&#233;licieux";
french[4]="Quel jour va-t-elle arriver?";
french[5]="Nous avons onze minutes avant le d&#233;part du train!";
french[6]="Habiter dans un pays &#233;tranger est une bonne exp&#233;rience.";
french[7]="Excusez-moi! Je suis en retard!";
french[8]="Est-ce que ce taxi est libre?";
french[9]="Faites attention quand vous descendez l'escalier.";

感谢你这么多的帮助。

有帮助吗?

解决方案

我认为你需要使用innerHTML为特殊字符得到解释:

phrase.innerHTML = french[phrasenum]; 

其他提示

如果您的HTML / Javascript代码文件被创建的,因此使用Unicode,你应该能够把O和在JavaScripté字符,HTML,没有任何问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top