除了internet explorer,此javascript在所有浏览器中都可以使用!
网页如下: 我是说当你点击按钮的时候?在左边,它应该打开一个包含更多内容的盒子。它在除IE之外的所有浏览器中都能做到这一点除了internet explorer,此javascript在所有浏览器中都可以使用!,javascript,jquery,ajax,internet-explorer,Javascript,Jquery,Ajax,Internet Explorer,网页如下: 我是说当你点击按钮的时候?在左边,它应该打开一个包含更多内容的盒子。它在除IE之外的所有浏览器中都能做到这一点 function question() { $('.rulesMiddle').load('faq.php?faq=rules_main',function(){//load page into .rulesMiddle var rulesa = document.getElementById('rulesMiddle').innerHTML;
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
});
}
函数问题()
{
$('.rulesmidle').load('faq.php?faq=rules_main',function(){//将页面加载到.rulesmidle中
var rulesa=document.getElementById('rulesMiddle').innerHTML;
var rules=rulesa.split(“”);//split将上面的规则切掉
var rulesT=rules[1]。拆分('IE将innerHTML内容转换为大写,因此您可能无法以这种方式拆分字符串,因为字符串操作区分大小写。通过运行
alert(rulesa);
IE将innerHTML内容转换为大写,因此您可能无法以这种方式拆分字符串,因为字符串操作区分大小写。通过运行
alert(rulesa);
当我单击该按钮时,我的IE调试器在您的脚本上抛出一个错误。在这一行:
var rulesT = rules[1].split('<form class="block');//split to chop off below rules
var rulesT=rules[1]。拆分(“My IE debugger在我单击该按钮时在脚本上引发错误。在此行:
var rulesT = rules[1].split('<form class="block');//split to chop off below rules
var rulesT=rules[1]。split('Andris是对的。这还不是全部。它还将丢弃属性中的引号
对从innerHTML
获取的字符串的格式进行任何假设都是完全不可靠的;浏览器可能以各种形式输出它 — 在IE的例子中,其中一些甚至不是有效的HTML。返回最初解析的相同字符串的可能性非常低
一般来说:HTML字符串黑客攻击是一种浪费时间的行为。改为使用HTML元素的节点对象来修改HTML元素。您似乎在使用jQuery,因此有大量实用程序函数可以帮助您
在任何情况下,您都不应该将整个HTML页面加载到#rulesmidle
中。它包含大量脚本、样式表和其他无法放入其中的标题废话。jQuery允许您选择要插入文档的哪一部分;您似乎只需要第一个。blockbody
元素,因此请选择:
$('#rulesMiddle').load('faq.php?faq=rules_main .blockbody:first', function(){
$('#rulesMiddle .blockrow').attr('class', '');
$('.rulesMain').slideToggle();
$('.rulesMain').css('top', '20px');
});
安德里斯是对的。这还不是全部。它还将丢弃属性中的引号
对从innerHTML
获取的字符串的格式进行任何假设都是完全不可靠的;浏览器可能以各种形式输出它 — 在IE的例子中,其中一些甚至不是有效的HTML。返回最初解析的相同字符串的可能性非常低
一般来说:HTML字符串黑客攻击是一种浪费时间的行为。改为使用HTML元素的节点对象来修改HTML元素。您似乎在使用jQuery,因此有大量实用程序函数可以帮助您
在任何情况下,您都不应该将整个HTML页面加载到#rulesmidle
中。它包含大量脚本、样式表和其他无法放入其中的标题废话。jQuery允许您选择要插入文档的哪一部分;您似乎只需要第一个。blockbody
元素,因此请选择:
$('#rulesMiddle').load('faq.php?faq=rules_main .blockbody:first', function(){
$('#rulesMiddle .blockrow').attr('class', '');
$('.rulesMain').slideToggle();
$('.rulesMain').css('top', '20px');
});
不知道你是否解决了它,但它在我的丑陋IE上起作用…(它是v8)
顺便说一句:是我,还是温开的弹出窗口真的,真的,真的减慢了平台的速度?不知道你是否解决了这个问题,但它在我丑陋的IE上工作…(它是v8)
顺便说一句:是我,还是温打开的弹出窗口真的,真的,真的,真的减慢了平台的速度?在Firefox中,它只是重定向页面,你有没有收到任何警告/错误?你在ie中有没有脚本错误?如果有,你能在这里发布吗?你为什么不使用$('#rulesmidle').html()
而不是document.getElementById('rulesmidle').innerHTML
?你在使用jQuery,好好利用它。我认为@Andris有答案,但你的代码有一点让人困惑,那就是jQuery和直接HTML操作的奇怪混合。我认为你会发现在整个过程中使用jQuery操作属性和HTML更干净。在Firefox中,它只是将页面重定向到您是否收到任何警告/错误?ie中是否出现脚本错误?如果是,您可以将其发布到此处,为什么不使用$('rulesmidle').html()
而不是document.getElementById('rulesmidle')).innerHTML
?您正在使用jQuery,好好利用它。我认为@Andris已经找到了答案,但您的代码有一点让人困惑,那就是jQuery和直接HTML操作的奇怪混合。我认为您会发现在整个过程中使用jQuery操作属性和HTML会更干净。对-也许可以尝试强制使用innerHTML在尝试拆分()之前使用toLowerCase()。对-可能在尝试拆分()之前尝试强制innerHTML使用toLowerCase()。这可能是因为之前的拆分命令不匹配任何内容,所以规则[1]可能为空/不存在。这可能是因为之前的拆分命令不匹配任何内容,所以规则[1]可能为空/不存在。