如何在不知道Javascript文件扩展名的情况下设置img src?

如何在不知道Javascript文件扩展名的情况下设置img src?,javascript,Javascript,我有一个空的img标签: <img src=""> 因此,我想知道是否有一种方法可以设置src而不指定 分机 提前感谢。如果你已经在使用JS。。检查图像的扩展名并将其添加: checkImgExtension(img) { // Was not your question ;-) } var img1 = "img/image1"; var src = checkImgExtension(img1 ); document.querySelector("img").sr

我有一个空的img标签:

<img src="">
因此,我想知道是否有一种方法可以设置src而不指定 分机


提前感谢。

如果你已经在使用JS。。检查图像的扩展名并将其添加:

checkImgExtension(img)
{
    // Was not your question ;-)
}

var img1 = "img/image1";

var src = checkImgExtension(img1 );

document.querySelector("img").src = img1 + src;

编辑

如果你已经使用JS。。检查图像的扩展名并将其添加:

checkImgExtension(img)
{
    // Was not your question ;-)
}

var img1 = "img/image1";

var src = checkImgExtension(img1 );

document.querySelector("img").src = img1 + src;
编辑

/img/image1*/

正则表达式是您所需要的

但是在后端(您使用的是什么语言?PHP、Javascript、ruby?),而不是前端Javascript。

/img/image1*/

正则表达式是您所需要的


但是在后端(您使用的是什么语言?PHP、Javascript、ruby?),而不是前端Javascript。

浏览器将从服务器请求
src
属性。如果您以某种方式将服务器配置为使用默认扩展,那么这是可能的。但最好是明确你的要求

在任何情况下,如果您想动态地将图像添加到页面中,请不要添加错误的标记。动态创建元素

var image = document.createElement('img');
image.alt = 'This is a river.'; // alt is required per HTML spec
image.src = 'your/image/location';
document.body.appendChild(image); // or wherever you want it

无论您的
src
属性说什么,都是浏览器将从服务器请求的内容。如果您以某种方式将服务器配置为使用默认扩展,那么这是可能的。但最好是明确你的要求

在任何情况下,如果您想动态地将图像添加到页面中,请不要添加错误的标记。动态创建元素

var image = document.createElement('img');
image.alt = 'This is a river.'; // alt is required per HTML spec
image.src = 'your/image/location';
document.body.appendChild(image); // or wherever you want it

如果服务器上运行脚本语言,则可以在那里运行脚本,在映像目录中搜索具有任何扩展名的名称。您将
src
URL设置为指向脚本,服务器可以搜索文件并发送重定向

document.querySelector("img").src = "find_image.php?name=image1";
find_image.php
类似于:

<?php
$name = $_GET['name'];
$files = glob($_SERVER['DOCUMENT_ROOT'] . "/img/" . $name . ".*");
if (!empty($files)) {
    header("Location: /img/" . basename($files[0]));
} else {
    // Redirect to a default image if the file can't be found
    header("Location: /img/default.gif");
}

如果服务器上运行脚本语言,则可以在那里运行脚本,在映像目录中搜索具有任何扩展名的名称。您将
src
URL设置为指向脚本,服务器可以搜索文件并发送重定向

document.querySelector("img").src = "find_image.php?name=image1";
find_image.php
类似于:

<?php
$name = $_GET['name'];
$files = glob($_SERVER['DOCUMENT_ROOT'] . "/img/" . $name . ".*");
if (!empty($files)) {
    header("Location: /img/" . basename($files[0]));
} else {
    // Redirect to a default image if the file can't be found
    header("Location: /img/default.gif");
}

您可以检查所有文件类型,并查看
onerror
事件。像这样:

var image = document.createElement("IMG");
image.src = "myfile.jpg";
document.appendChild(image);

for(var i = 0; i<2; i++){
 image.onerror = function(){
  if(image.src == "myfile.jpg"){
   image.src = "myfile.png";
  }else if(image.src == "myfile.png"){
   image.src = "myfile.gif";
  }
}
var image=document.createElement(“IMG”);
image.src=“myfile.jpg”;
文件。追加子文件(图像);

对于(var i=0;i您可以检查所有文件类型,并查看
onerror
事件。如下所示:

var image = document.createElement("IMG");
image.src = "myfile.jpg";
document.appendChild(image);

for(var i = 0; i<2; i++){
 image.onerror = function(){
  if(image.src == "myfile.jpg"){
   image.src = "myfile.png";
  }else if(image.src == "myfile.png"){
   image.src = "myfile.gif";
  }
}
var image=document.createElement(“IMG”);
image.src=“myfile.jpg”;
文件。追加子文件(图像);


对于(var i=0;iRegex应该能够找到匹配项)您如何知道文件名而不知道扩展名?扩展名是文件名的一部分?您知道的部分来自哪里?您可能需要处理此服务器端,或者可以尝试使用不同的扩展名(png、jpg、jpeg、gif、bmp等)加载保留成功加载的那一个。第一个得到它的:Barmar我们不知道。所以@Boel请告诉你从哪里知道你的img名称。Micah Henning的答案是正确的,但仍然没有回答一个主要问题。是吗?不知道。正则表达式应该能够找到匹配项。你怎么知道文件名而不知道扩展名?T扩展名是文件名的一部分?您知道的部分来自哪里?您可能需要处理此服务器端,或者可以尝试加载不同的扩展名(png、jpg、jpeg、gif、bmp等)保留成功加载的那一个。这里的第一个:Barmar我们不知道。因此@Boel请告诉你从哪里知道你的img名称。Micah Henning的答案是正确的,但仍然没有回答一个主要问题。是吗?不知道。当浏览器请求URL时,Web服务器不会扩展正则表达式。Web服务器在浏览器请求URL时,请不要展开正则表达式。您检查文件名的依据是什么?请发布
checkImgExtension()的内容
。如果没有这一点,你的代码就没有意义。有趣的是…-他应该想办法检查文件扩展名。他没有说,他从哪里得到了img的名称。所以这取决于尚未回答的问题。我很抱歉。你为什么不问Micah Henning@Barmar…我们都在同一条道路上…搜索,而不是查找:-)@sasha我在“img”文件夹中有图像。例如,在img文件夹中:image1.jpg、image2.png、image3.gif。但我只知道文件名,如image1、image2等。我想知道是否有办法只知道名称就设置img src。你在检查文件名时依据什么?请发布
checkImgExtension()的内容
。如果没有这一点,你的代码就没有意义。有趣的是…-他应该想办法检查文件扩展名。他没有说,他从哪里得到了img的名称。所以这取决于尚未回答的问题。我很抱歉。你为什么不问Micah Henning@Barmar…我们都在同一条道路上…搜索,而不是查找:-)@萨沙,我把这些图片放在“img”文件夹里。例如,在img文件夹中:image1.jpg、image2.png、image3.gif。但我只知道文件的名称,如image1、image2等。我想知道是否有办法只知道名称就设置img src。这对他不知道要放入
image.src
的扩展名的问题有什么帮助?除非StackExchange上有神谕或神,否则没有人能告诉提问者使用什么扩展名。扩展名只是文件名的一部分;它本身没有什么特别之处。我们怎么知道他或她的文件名?!他想要一个解决方案,在目录中搜索带有任何图像扩展名的文件名。但在任何情况下,@Barmar,我提到过将web服务器配置为使用默认扩展名,类似于Apache默认为index.html的方式,例如,如果用户导航到一个目录而不是直接导航到他们想要的文件,这对解决问题有什么帮助