Javascript 如何判断标签是网站还是图像?
我想做一个chrome扩展,检查标签是图片还是网站。让我详细说明一下:我只想在选项卡是图像时插入或执行一些代码,例如,如果选项卡URL是: 因此,如果我制作了一个背景脚本来检查URL是否为images*.jpg,那么它将为所有看起来像图像但实际上不是的内容执行代码,例如: 它看起来像图像的URL,但实际上不是。问题是,有时即使没有扩展,选项卡实际上也是一个图像,如下所示: 这是一个图像,但背景脚本不知道 那么,如何判断标签是图像还是网站呢?API中是否有处理此问题的内容?向相关资源发出HEAD请求并读取内容类型响应标头。不过,您可能需要发出跨源请求,但如果您正在开发Chrome扩展Javascript 如何判断标签是网站还是图像?,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我想做一个chrome扩展,检查标签是图片还是网站。让我详细说明一下:我只想在选项卡是图像时插入或执行一些代码,例如,如果选项卡URL是: 因此,如果我制作了一个背景脚本来检查URL是否为images*.jpg,那么它将为所有看起来像图像但实际上不是的内容执行代码,例如: 它看起来像图像的URL,但实际上不是。问题是,有时即使没有扩展,选项卡实际上也是一个图像,如下所示: 这是一个图像,但背景脚本不知道 那么,如何判断标签是图像还是网站呢?API中是否有处理此问题的内容?向相关资源发出HEAD请
您可能会查找与image/*。匹配的MIME类型,但请求将是异步的。我将如何适应它@这就是xhr的优点,它是异步的。看看文档:,添加readystatechange处理程序,或者同步打开它,有很多不同的方法可以使用它。我知道XHR的优点在于它的异步特性。但是在这种情况下,我想重定向到一个本地页面,如果选项卡是一个图像,那么函数应该立即返回,而不是等待XHR完成。我可以通过创建另一个本地页面来执行XHR,看看它是否是图像,然后重定向到我的本地页面或原始网站,但是,如果是网站,它将全天循环运行网站>背景脚本>本地页面,执行XHR>网站>背景…@ibrahimmahrir您可以强制请求与open方法的第三个参数同步:我相信这是不推荐的!使用/插入一个内容脚本,检查唯一的主体元素是否是图像,其src是否等于选项卡URL。@wOxxOm可能是一个比我更好的解决方案,但idk在不同版本的chrome@Hatchet同意这个周末就换了!所以这不是理所当然的事!不确定浏览器版本会如何影响这一点。多年来,我一直在使用userscript,它使用上述方法,似乎是可靠的。