2011-09-11 6 views
0

이 코드 스 니펫에서 document.createElement ('a') 태그가 IE8에서 작동하지 않습니다. 그것은 크롬과 파이어 폭스에서 잘 작동합니다. IE를 통해 확인할 때 첫 번째 코드 줄이 손상된 것처럼 보입니다.document.createElement가 IE8에서 작동하지 않습니다.

 item = document.createElement('a'); 
     item.setAttribute('id', 'memorize'); 
     item.innerHTML = "<?php echo wzfactory::get_xml('menu_item', 4, $com); ?>"; 
     item.setAttribute('class', 'menu_button'); 
     item.onclick = function() {redirect('memorizor', 'memorize', 0);}; 
     menu_div.appendChild(item); 

아무도 왜 이런 경우인지, 그리고 진부한 브라우저 해결 방법이 있는지 알고 있습니까? 해결 방법을 찾을 수 없었습니다.

+0

안녕하십니까. 항상 정확한 오류 메시지를 * 인용하십시오. 또한 JS 질문이므로 PHP 소스 대신 최종 생성 HTML/JS를 표시하면 더 좋을 것입니다. –

+1

'createElement'가 작동하지 않는다는 것을 어떻게 결정 했습니까? –

+0

깨진 방법? 어떤 오류가 발생합니까? 어떤 디버깅 도구를 사용하고 있습니까? 문제가 첫 번째 코드 줄에 있다고 생각하는 이유는 무엇입니까? 왜 JavaScript 자체 대신에 JavaScript를 생성하는 PHP를 우리에게 보여주고 있습니까? 왜 IE의 여러 버전에서 (특히 클래스를 설정하기 위해) 깨진 것으로 알려진'setAttribute'를 사용하고 있습니까? – Quentin

답변

2

"휴식"기능이 .. 대신을 시도 할 수있는 일의 커플 : 그래서 링크

item = document.createElement('a'); 
item.id = 'memorize'; 
item.href = "#"; 
item.innerHTML = "<?php echo wzfactory::get_xml('menu_item', 4, $com); ?>"; 
item.className 'menu_button'; 
item.onclick = function() { 
    redirect('memorizor', 'memorize', 0); 
    return false; 
}; 
menu_div.appendChild(item); 

먼저, setAttribute를 통해 직접 아니라 id을 할당하고 둘째, href없이 앵커가 단순한 텍스트되고,하지 해당 속성을 지정해야합니다.

관련 문제