2011-09-11 137 views
0

在這段代碼中,document.createElement('a')標記在IE8中不起作用。它在Chrome和Firefox中運行良好。當我通過IE瀏覽器進行檢查時,它好像是第一行代碼被破壞了。document.createElement在IE8中不工作

 item = document.createElement('a'); 
     item.setAttribute('id', 'memorize'); 
     item.innerHTML = "<?php echo wzfactory::get_xml('menu_item', 4, $com); ?>"; 
     item.setAttribute('class', 'menu_button'); 
     item.onclick = function() {redirect('memorizor', 'memorize', 0);}; 
     menu_div.appendChild(item); 

有沒有人知道爲什麼會出現這種情況,以及是否有蹩腳的瀏覽器解決方法?我一直無法找到解決方法。

+0

歡迎來到SO。請*總是*引用您正在收到的確切錯誤消息。另外,看到它是一個JS問題,如果你展示了最終生成的HTML/JS代替PHP源代碼會更好 –

+1

你怎麼確定'createElement'不工作? –

+0

損壞如何?你會得到什麼錯誤?你使用哪些調試工具?是什麼讓你認爲問題出現在第一行代碼中?爲什麼要向我們展示生成JavaScript而不是JavaScript本身的PHP?爲什麼你使用'setAttribute'這是已知的許多版本的IE瀏覽器崩潰(尤其是設置類)? – Quentin

回答

2

的東西夫婦可能「破發」的功能..嘗試這個:

item = document.createElement('a'); 
item.id = 'memorize'; 
item.href = "#"; 
item.innerHTML = "<?php echo wzfactory::get_xml('menu_item', 4, $com); ?>"; 
item.className 'menu_button'; 
item.onclick = function() { 
    redirect('memorizor', 'memorize', 0); 
    return false; 
}; 
menu_div.appendChild(item); 

第一,而不是直接分配id通過setAttribute和第二,沒有href錨變成單純的文本,而不是鏈接,以便您必須分配該屬性。