2010-05-18 142 views
1

网页在这里: http://develop.macmee.com/testdev/这个JavaScript适用于所有浏览器,除了Internet Explorer!

我说的是当你点击?在左边,它应该打开一个包含更多内容的框。它在除IE以外的每个浏览器中都这样做!

function question() 
{ 
    $('.rulesMiddle').load('faq.php?faq=rules_main',function(){//load page into .rulesMiddle 

     var rulesa = document.getElementById('rulesMiddle').innerHTML; 
     var rules = rulesa.split('<div class="blockbody">');//split to chop off the top above rules 

     var rulesT = rules[1].split('<form class="block');//split to chop off below rules 
     rulesT[0] = rulesT[0].replace('class=','vbclass');//get rid of those nasty vbulletin defined classes 
     document.getElementById('rulesMiddle').innerHTML = rulesT[0];//readd the content back into the DIV 
     $('.rulesMain').slideToggle();//display the DIV 
     $('.rulesMain').center();//center DIV 
     $('.rulesMain').css('top','20px');//align with top 
    }); 
} 
+0

在Firefox中它只是将页面重定向到http://develop.macmee.com/testdev/ – Glennular 2010-05-18 19:14:49

+0

你有没有得到任何警告/错误? – zaf 2010-05-18 19:15:59

+0

你是否在脚本中出现错误?如果是的话,你可以在这里发布 – 2010-05-18 19:16:55

回答

6

IE的innerHTML内容转换为大写字母,所以你可能无法分割字符串这种方式,因为字符串操作是区分大小写的。通过运行检查内容的真实外观

alert(rulesa); 
+0

正确的 - 也许尝试迫使innerHTML toLowerCase()试图拆分()之前。 – liquidleaf 2010-05-18 19:38:50

0

当我单击该按钮时,我的IE调试器会在您的脚本上引发错误。在这条线:

var rulesT = rules[1].split('<form class="block');//split to chop off below rules 

IE停止处理Javascript和说'1' is null or not an object

+0

这可能是因为事先拆分命令不匹配任何东西,所以规则[1]可能是空的/不可靠的。 – liquidleaf 2010-05-19 13:18:50

4

安德里斯是正确的。而这还不是全部。它也会丢掉属性中的引号。

它是完全不可靠作出关于您从innerHTML得到的字符串格式的任何假设;浏览器可能会以各种形式输出它 - 其中一些在IE的情况下甚至不是有效的HTML。你找回最初解析的字符串的机会非常低。

一般来说:HTML-string-hacking是一个浪费时间的缺陷。改为使用其节点对象修改HTML元素。你似乎在使用jQuery,所以你有很多实用功能来帮助你。

在任何情况下,您不应该将整个HTML页面加载到#rulesMiddle。它包括一堆脚本和样式表,以及其他无法进入的头文件。 jQuery允许你选择要插入的文档的哪一部分;你似乎只是想第一.blockbody元素,所以挑选:

$('#rulesMiddle').load('faq.php?faq=rules_main .blockbody:first', function(){ 
    $('#rulesMiddle .blockrow').attr('class', ''); 
    $('.rulesMain').slideToggle(); 
    $('.rulesMain').css('top', '20px'); 
}); 
0

不知道你解决它,但它在我的丑IE浏览器...(它的V8)

工作的顺便说一句:这是我,还是弹出窗口的寡妇真的,真的真的放缓了这个平台?

相关问题