Javascript 内容协商-在firefox中显示图像

Javascript 内容协商-在firefox中显示图像,javascript,php,css,firefox,content-negotiation,Javascript,Php,Css,Firefox,Content Negotiation,我有一个图像微缩画廊。单击其中一个后,将在新选项卡中打开一个全尺寸等效项。假设我有很多版本的图像.jpg、.gif和.png。如何修改文件以显示正确的(浏览器最需要的)文件 我的firefox的首选项是: user_pref("network.http.accept.default", "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg;q=0.8, image/g

我有一个图像微缩画廊。单击其中一个后,将在新选项卡中打开一个全尺寸等效项。假设我有很多版本的图像
.jpg、.gif和.png
。如何修改文件以显示正确的(浏览器最需要的)文件

我的firefox的首选项是:

user_pref("network.http.accept.default", "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg;q=0.8, image/gif, image/x-xbitmap, */*;q=0.1");
和my.php文件:

<?php 
    $source = $_GET['source'];
    echo '<img src="images/watermarked/'.$source.'" alt="File not found."></img>';

?>

看起来,您的PHP文件毫无用处,因为您也可以在gallery代码中执行此逻辑

还有,我不明白为什么你不想发送最想要的格式。我宁愿根据内容选择格式,而不是浏览器。JPEG文件非常适合用于照片和大多数绘画,PNG文件非常适合用于非矢量图形,SVG带有PNG回退功能用于矢量,GIF用于动画。我会选择这条路。另外,您不应该发送非常大的文件,因为某些设备有限制。在大多数情况下,低于300万像素的图像似乎是正常的

无论如何,如果您有权根据请求头访问这些首选项,则可以按逗号分割,筛选可用的文件格式,然后选择余数数组中的第一个值以获得所需的值。如果数组中没有值,则需要使用回退