2011-11-27 3 views
1

미리 설정된 양식에서 두 개의 라디오 버튼 옆에있는 텍스트를 바꿀 js 바꾸기 기능이 있습니다.대체 텍스트 기능이 탐색기에서 작동하지 않습니다

스크립트는 다음과 같습니다.

document.body.innerHTML=document.body.innerHTML.replace("Payment by <b>Moneybookers</b> 
e-wallet<br>",""); 

document.body.innerHTML=document.body.innerHTML.replace("Maestro, Visa and other credit/debit cards by <b>Moneybookers</b>","Pago con Diners Club, Mastercard o Visa");}onload=x; 

스크립트는 Chrome 및 Firefox에서 제대로 작동하지만 스크립트는 Explorer에서 작동하지 않습니다.

저는 그것이 텍스트와 관련이 있다고 생각합니다. 이 기능을 사용하여 텍스트를 "/"로 대체하면 텍스트가 바뀝니다. 예를 들어 텍스트를 바꿀 때 .. - "Maestro, Visa 및 Moneybookers의 다른 신용/직불 카드" 탐색기에서 작동하지 않습니다. 나는 혼수 상태와 슬래시 때문에 추측합니다. 솔직히 나는 모든 것을 시도했지만 이것을 작동시킬 수는 없습니다. 어떤 도움이라도 대단히 감사 할 것입니다 !!

+1

:

은 결국 그것은 다음과 같이 보일 것입니다. 그래서 그것이 시작되어야 할 것입니다. 상태 표시 줄의 왼쪽에 약간 노란색 **! **이 표시되어야합니다. 클릭하면 오류가 표시됩니다. –

답변

1

관련이 있는지 (저는 IE가없는 Mac 사용자입니다) 멀티 라인 문자열을 사용하면 안됩니다. 대신 \n을 사용하십시오.

+0

고마워요 톰, 솔직하게 말해 줘요. ​​진짜 초보자예요. 내 스크립트를 어떻게 우리 대신에 적응시켜야 하죠? \ n. 많은 감사합니다! – LEOPM

+0

'document.body.innerHTML = document.body.innerHTML.replace ("Moneybookers \ ne-wallet
", ""); ' –

1

innerHTML에서 반환되는 내용은 브라우저에 따라 달라지며 내용에 대한 표준이 없으므로 내용은 동일하지만 표시되는 방식이 다를 수 있습니다. 이와 같은 대체 작업은 일부 브라우저에서 실패 할 가능성이 있습니다. 대체 방법으로 다른 방법을 취해야합니다.

대체하려는 텍스트를 span으로 감싸는 것이 더 나은 방법입니다. 이렇게하면 바꿀 내용을보다 쉽게 ​​타겟팅 할 수 있습니다.

<span id="thatFirstThing">Payment by <b>Moneybookers</b>e-wallet<br></span> 

당신이 innerHTML을 몸에 교체 수행

document.getElementById("thatFirstThing").innerHTML = ""; 

P.S을 : 할 수있는 후도 큰 부작용이있다. 너는 너의 구멍 페이지의 내용을 대체하기 때문에. 페이지에서 바인딩 할 위치의 모든 이벤트 핸들러가 사라집니다.

편집 : HTML 페이지를 수정할 수 없으면 DOM이 그런 일을하기에 적합하지 않으므로 조금 더 까다 롭습니다. DOM을 탐색하여 부모 요소를 타겟팅하려면 document.getElementByIdchildNodes을 사용하면됩니다. 부모 요소가 있으면 대체하지 않고 원하는 새로운 콘텐츠를 작성하십시오. 브라우저에서 자바 스크립트 콘솔을 보면, 당신은 구문 오류를 볼 수 있습니다

document.getElementById("someSection").childNodes[0].childNodes[1].childNodes[0].innerHTML = ""; 
+0

* "innerHTML에서 반환되는 내용은 브라우저마다 다릅니다. .. "사실, OP는 * 읽는 것이 아니라 재산을 설정하는 것과는 무관합니다. * "... ... 그것에 대한 표준이 없기 때문에"* HTML5의 일부로 표준화되고있다. (http://www.w3.org/TR/html5/apis-in-html) -documents.html # innerhtml). –

+0

@ T.J.Crowder 그는'document.body.innerHTML'의 값을 읽고 값을 설정했습니다. 읽지 않는다고해서 무엇을 의미합니까? – HoLyVieR

+0

안녕하세요. 고마워요. 이 모든 일에 새로 온 것 뿐이야.이 스크립트를 어떻게 수정해야하는지 충고 해 주실 수 있겠습니까? 진실은 다른 누군가가 나를 위해 작성한 것입니다. 스크립트보다 먼저 스팬 스크립트를 넣어야합니까? 그리고 당신은 '그 첫 걸음'을 가지고 있습니다. 미안 해요. 제가 거기에 무엇을 넣을까요? 정말 고마워!! – LEOPM

관련 문제