2010-06-21 5 views
0

사용자 입력이 필요한 페이지가 있는데 페이지에 일부 javascript 및 채우기 필드가 있습니다. 여기에는 실행되고 다른 페이지에서 데이터를 얻는 펄 스크립트를 호출하는 것이 포함됩니다. 펄 스크립트가 반환 할 항목의 수는 0에서 10 개 또는 그 이상일 수 있습니다. 이 문제를 해결하기 위해 각 HTML 페이지의 목록에 각 항목을 추가하는 자바 스크립트를 작성했습니다.자바 스크립트의 인터넷 탐색기 및 동적 목록

나는 Safari와 Chrome에서 완벽하게 작동하는 것처럼 보이지만 인터넷 익스플로러 6이나 7에서 작동하고 싶지는 않습니다. 여기서 가장 중요한 문제는 대부분의 사람들이 인터넷 익스플로러에있을 것입니다. 자바 스크립트 코드에 오류가 없습니다.

<div id='testDiv'><ul></ul></div>

는 난 그냥 내 자바 스크립트

<li>blah blah blah</li></ul>

와 사업부에 </ul> 떨어져 인스턴스를 교체하고 항목이 목록에 추가해야 할 때마다 그 반복이 있습니다. 페이지의 다른 모든 항목은 정상적으로 작동하며 새 목록 항목이 표시되는 위치에 대한 새로운 줄이 있습니다. 그러나 거기에 텍스트가 표시되지 않습니다.

내가 잘못하고있는 일이 있거나 인터넷 탐색기가 올바르게 렌더링되지 않았습니까?


EDIT : 요청 된 정보를 추가했습니다.

var dateList = document.getElementById('testDiv').innerHTML; 
var insertToList = "<li><div>blah blah blah</div></li></ul>"; 
dateList = dateList.replace('</ul>', insertToList); 
document.getElementById('testDiv').innerHTML = dateList; 

결과가 순환되고 적절한 결과가 목록에 추가되도록 루프에이 값이 있습니다. 불행히도 내부 프로젝트이기 때문에 페이지를 연결할 수 없습니다.

+0

웹 페이지에 연결할 수 있습니까? 아니면 적어도 교체를 수행하는 Javascript를 게시 하시겠습니까? –

+0

위를 참조하여 자바 스크립트 코드를 추가했습니다. – sam

답변

0

선택기 엔진에 사용하는 항목에 따라 IE가 다릅니다. 브라우저의 차이점을 처리 할 때 jQuery를 사용하여 콘텐츠를 선택하고 교체하는 것이 좋습니다.

0

에서 IE6 testDiv.innerHTML<UL></UL>입니다. 대문자 태그를 유의하십시오.

dateList.replace('</ul>', ...)은 일치하는 것을 찾을 수 없으므로 대체를 수행하지 않습니다.

더 나은 방법은 목록 (ul) 요소에 대한 참조를 가져 와서 거기에 HTML을 추가하는 것입니다.

var ulRef = document.getElementById('testDiv').getElementsByTagName("ul")[0]; 
ulRef.innerHTML += "<li><div>blah blah blah</div></li>";