2013-03-30 1 views
0

페이지가로드 된 후 스크립트를로드합니다 (즉, 사용자가 북마크릿에서 호출하는 즉시). 이 스크립트는 현재 페이지를 확인하고 현재 값에서 스크립트가 지정하는 값으로 일부 텍스트를 변경합니다.JS와 함께 삽입 할 때 특수 문자가 DOM에서 해석되지 않는 이유는 무엇입니까?

보다 구체적으로, 이것은 번역에 사용됩니다. 예를 들어 "Friends"를 "Freunden"으로 다른 언어로 변경하는 식입니다.

"switch"문을 사용하여 선택한 언어에서 선택하십시오. 문제는 예를 들어, 아랍어 같은 이국적인 언어를 가지고, 그리고 문은이 (의사 코드) 다음과 같습니다

if (Arabic) { var f = 'Друзья'} 다음

,이 변수는에 지정된 노드의 내부 텍스트를 변경하는 데 사용됩니다 그래서 같은 DOM : 텍스트는 모든 엔티티와 DOM에 그대로 나타납니다

dI('change').childNodes[0].childNodes[0].textContent = f;

은 결과 언어, 그것은해야하지 방식으로 해석되지 않습니다. 어떻게 위와 같이 그들을 통과하는 동안 브라우저가 엔티티를 해석하게합니까 ??

+4

당신은하지 텍스트로, HTML 등의 내용을 설정해야합니다. mozilla.org/en/docs/DOM/element.innerHTML. –

+0

고마워요 @FelixKling –

답변

3

는 사용 innerHTML 대신 textContent, 귀하의 경우처럼 :

dI('change').childNodes[0].childNodes[0].textContent = f; 

가된다 :은 https : // 개발자

dI('change').childNodes[0].childNodes[0].innerHTML = f; 
+0

그래, 일했다. 고마워. 이것은 내가 쉬운 것들을 모를 때, "아하 (ahaa)"순간들 중 하나였습니다. 너를 존중한다. –

+1

@CB 당신이 만족한다면 [답변에 동의하십시오] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)를 잊지 마십시오. –

관련 문제