2010-05-18 102 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)

工作的順便說一句:這是我,還是彈出窗口的寡婦真的,真的真的放緩了這個平臺?

相關問題