2010-05-02 2 views
0

iframe 기반 웹 앱을 보려면 here으로 이동하십시오. 호주의지도를 클릭하고 도시를 선택한 다음 티켓을 구입하십시오. 이제 오른쪽 하단 모서리에있는 카트 모양을 볼 수 있습니다. 문제는 IE8에서 테이블에서 검사 된 행을 삭제할 수 없습니다. FireFox3.6, Opera10, Safari4 및 Chrome4와 같은 다른 브라우저에서는이 동작이 좋습니다.다이애나 폼 동작을 사용할 때 IE8 오류

다음은 관련된 자바 스크립트입니다. 요구 사항의 일부로 jQuery를 사용하지 않으므로 프레임 워크를 사용할 수 없습니다! 그리고 iframe이 가장 좋은 내기이며, 아약스는이 제한 조건 하에서 나를 죽일 것입니다.

/* cartForm.js */ 
function toDeleteRoutes() //this function is executed before form is to be submitted. 
{ 
if(document.getElementsByClassName('delete_box').length > 0) //there're rows to delete 
{ 
    document.getElementById('cartForm').action ="./deleteRoutes.php"; 
    document.getElementById('cartForm').target ="section4"; 

    return true; //this enables the form to be submitted as usual. 
} 
else return false; //there is no more row in table to delete! 
} 

function toSendEmail() //this function is executed before form is to be submitted. 
{ 
document.getElementById('cartForm').action ="./sendEmail.php"; 
document.getElementById('cartForm').target ="section3"; 

document.getElementById('delete_btn').disabled = true; //disable delete button now 
return true; //this enables the form to be submitted as usual. 
} 

function toCancelPurchase() 
{ 
document.getElementById('cartForm').action ="./cancelPurchase.php"; 
document.getElementById('cartForm').target ="section4"; 

return true; //this enables the form to be submitted as usual. 
} 

어떤 부분이 잘못 되었는지 알 수 없습니까? 아니면 IE8이 모두 나사이기 때문입니까?

답변

0

document.getElementsByClassName 메서드를 사용하고 있고 IE의 경우 not available입니다.

이 기능을 사용하려면 사용자 지정 함수를 포함해야합니다. 개인적으로

나는 Dustin Diaz implementation의 약간 수정 된 버전 같은 : 대한

+0

감사 :

function getElementsByClassName(node,classname) { if (node.getElementsByClassName) { // use native implementation if available! return node.getElementsByClassName(classname); } else { return (function getElementsByClass(searchClass,node) { if (node == null) node = document; var classElements = [], els = node.getElementsByTagName("*"), elsLen = els.length, pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)"), i, j; for (i = 0, j = 0; i < elsLen; i++) { if (pattern.test(els[i].className)) { classElements[j] = els[i]; j++; } } return classElements; })(classname, node); } } 

확인의 다음 문서를 사용할 수있는 많은 구현이 있습니다 이 팁! – user330711

관련 문제