区分当前域和请求图像的域

时间:2011-08-01 10:35:21

标签: javascript jquery

我希望能够区分当前域和外部域请求的图像,以处理画布和跨域请求。我目前正在代理所有绝对来源的图像,而不是使用

代理本地图像
if ( $(this).attr('src').substr(0, 4) == 'http') { …

然而,这显然效率低下。区分当前域上的图像和另一个域上的图像的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

您可以根据地址栏中的内容测试图像src的主机名,如下所示:

var hostname = window.location.hostname;

$.each('img', function(){
    if (hostname !== $(this).attr('src')) 
    {
        $(this).attr('src', 'something-else');
    }
});

这是假设jQuery。您可能需要调整hostname / img src或将它们子串以获取您想要测试的位。

进一步阅读:http://www.w3schools.com/jsref/obj_location.asp

答案 1 :(得分:0)

感谢rsplak,Felix Kling和jammypeach,我到了那里。我对其他任何人的解决方案:

if (window.location.hostname !== this.src.split('/')[2]) { ...

如果图像托管在解决问题的其他域上,则上述声明仅评估为真。