我使用javascript方法getElementsByTagName(「a」)來調用所有'a'標記並對它們執行一些操作。該方法適用於FF和Opera,但不適用於Chrome和Safari。 當我看在Chrome和Safari瀏覽器的調試工具,他們說:「遺漏的類型錯誤:無法調用‘的getElementsByTagName’空的」getElementsByTagName不在鉻和Safari瀏覽器中工作
這是爲什麼,什麼是修復?請有人能就此提出建議嗎?
很多預先感謝。
下面的代碼:
function popUpSAPWindow(){
// Find all links in the page and put them into an array.
var linksInOrderLinesTable = document.getElementById("orderLinesTable").getElementsByTagName("a"); // The line doing the error
var linksLen = linksInOrderLinesTable.length;
// If the link text is 'SAP' then modify the attributes
for(var i = 0; i < linksLen; i++){
if(linksInOrderLinesTable[i].innerHTML == "SAP"){
// Store the 'href' value of each SAP link.
var sapHref = linksInOrderLinesTable[i].href;
// Modify the attributes of each SAP link.
linksInOrderLinesTable[i].setAttribute("href", "javascript:return false;");
linksInOrderLinesTable[i].setAttribute("onclick", "sapNewWindow(\'" + sapHref + "\')");
}
}
}
它的工作原理與此HTML:
<table id="orderLinesTable" summary="List of orders made by customers that the administrator can pick and deal with">
<tr>
<th>Status</th>
<th>Basket id</th>
<th>Order line id</th>
<th>Product</th>
<th>Company</th>
<th>Catalogue</th>
<th>Date</th>
<th>Details</th>
</tr>
<tr>
<td>Accepted</td>
<td>236569</td>
<td>207</td>
<td>OS Master Map</td>
<td>NHS</td>
<td>Standard</td>
<td>1 Aug 10</td>
<td><a href="/orderLineDetails.html">Normal</a> <a href="/orderLineDetails.html">SAP</a></td>
</tr>
<tr>
<td>New</td>
<td>236987</td>
<td>528</td>
<td>Code-Point</td>
<td>BT</td>
<td>Standard</td>
<td>9 Aug 10</td>
<td><a href="/orderLineDetails.html">Normal</a> <a href="/orderLineDetails.html">SAP</a></td>
</tr>
但是,當我在其他網頁它給提到的錯誤。
該錯誤表明它不是真正的方法本身,而是你要調用它的對象,它是空的(因此不具有法) 。你能發佈你的JavaScript代碼嗎? – Rob 2010-08-10 11:30:31
好吧,我現在將它發佈,看問題本身。 – Shaoz 2010-08-10 11:59:01