请转到here查看基于iframe的网络应用。 点击澳大利亚地图,选择一个城市,然后购买一些门票。 现在您将看到位于右下角的购物车表格。 问题出在IE8中,我无法从表中删除已检查的行; 而在其他浏览器中,如FireFox3.6,Opera10,Safari4和Chrome4,这个 行动没事。
以下是相关的javascript。它不使用jQuery作为要求的一部分 是不允许框架! iframe是我最好的选择,ajax会在这个限制下杀死我。
/* 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 :(得分:0)
您正在使用document.getElementsByClassName
方法,IE上为not available。
您应该包含自定义功能以获得此功能。
我个人喜欢Dustin Diaz implementation的略微修改版本:
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);
}
}
查看以下文章,您可以使用大量实现: