getElementsByTagName不保存(仅适用于chrome)

时间:2015-03-04 05:44:04

标签: javascript cross-browser

此代码适用于Chrome,但在Firefox,IE和Safari中失败。特定的中断是if语句出现的时候。我通过它进行了调试,当它遇到一个真实的语句时,它会忽略它并且不会进入If语句。

function injectId()
{
    //take over their old stuff
    var imgElements = document.getElementsByTagName('img');
    for(var i = 0, len = imgElements.length; i < len; i++) {
        if (imgElements[i].src == "http://imageurl/imagename.png") {
            imgElements[i].id = tabs[0];
            break;
        }
    }
}

图片的标题说明: 我使用非Chrome开发工具挣扎了一段时间,因为他们重新映射了这些名字。例如,如果你在for循环的开头打破并尝试添加“imgElements”来监视,它将引发一个“未定义的引用”错误。相反,我必须找到映射变量(在这种情况下为t),我还必须找到映射的索引变量(e)来查找源。

1 个答案:

答案 0 :(得分:0)

您的代码运行良好:http://jsfiddle.net/dpchq2h7/

我的猜测问题是tabs[0],这取决于哪些标签可能导致浏览器特定问题。