gpt4 book ai didi

google-chrome - getElementsByTagName 在 chrome 和 safari 中不起作用

转载 作者:行者123 更新时间:2023-12-01 13:05:25 25 4
gpt4 key购买 nike

我正在使用 javascript 方法 getElementsByTagName("a") 来调用所有 'a' 标签并对其进行一些处理。该方法适用于 FF 和 Opera,但不适用于 Chrome 和 Safari。
当我查看 Chrome 和 Safari 的调试工具时,他们说: “未捕获的 TypeError:无法调用 null 的方法 'getElementsByTagName'”

为什么会这样,解决方法是什么?请问有人可以给我建议吗?

提前谢谢了。

这是代码:

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>

但是当我在其他页面上时,它会给出提到的错误。

最佳答案

问题是,当您调用 document.getElementById("orderLinesTable").getElementsByTagName("a")在没有 orderLinesTable 的页面上getElementById 将返回 null .因此调用getElementsByTagNamenull会产生错误。

这应该可以解决问题:

var orderLinesTable = document.getElementById("orderLinesTable");
var linksInOrderLinesTable = [];

if (orderLinesTable) { // only get the links when the table exists
linksInOrderLinesTable = orderLinesTable.getElementsByTagName("a");
}

关于google-chrome - getElementsByTagName 在 chrome 和 safari 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3448344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com