避免使用document.createElement对源进行错误的源解释

时间:2014-09-17 09:36:05

标签: javascript

我有脚本,我希望我的网站上的访问者在加载网页时运行。它看起来像这样:

window.onload = function(){
    var pxl=document.createElement('img');
    pxl.setAttribute('src', 'http://localhost:8080/getTrackingPixel')
    document.body.appendChild(pxl);
}

大多数情况下,源返回图像并且工作正常。但是,有时它会返回:

 <html><body style="background-color:transparent"></body></html> 

我无法真正改变它有时可能无法返回图像的事实。如何更改javascript以便它可以处理html响应而不会出现任何错误?我可能有可能预测它何时发生 - 但我还没有设法找到一个好方法来请求源并返回html。

1 个答案:

答案 0 :(得分:1)

您可以使用javascript Image对象来实现它,与createElement方法不同,它允许您在在DOM中插入img之前获取src url

如果加载的内容不是img,onload对象的Image事件将不会触发。

这是:

window.onload = function(){
    var pxl = new Image();
    pxl.onload = function(){
        // is IMG
        document.body.appendChild(pxl);
    }
    pxl.onerror = function(){
        // is not IMG
        // Meaning in your case : <html><body style="background-color:transparent"></body></html>
    }
    pxl.src = 'http://localhost:8080/getTrackingPixel';
}

(请注意,您的代码也错过了semicolon ";"第4行)