Javascript 确定动态图像的文件扩展名';s src
使用Greasemonkey脚本,如果加载到网页上的图像是Javascript 确定动态图像的文件扩展名';s src,javascript,image,greasemonkey,Javascript,Image,Greasemonkey,使用Greasemonkey脚本,如果加载到网页上的图像是gif或jpg,则该脚本将执行特定操作。页面中的代码如下所示: <div id="current_photo"> <div style="text-align:center;"> <img src="[url]/[random numbers].gif/jpg" alt="" style="[styles]"> </div> </div>
gif
或jpg
,则该脚本将执行特定操作。页面中的代码如下所示:
<div id="current_photo">
<div style="text-align:center;">
<img src="[url]/[random numbers].gif/jpg" alt="" style="[styles]">
</div>
</div>
URL的开头是唯一的,因为页面上只有一个带有该URL的图像。需要一种方法来提取该路径并从中获取扩展名。为图像标签添加id=“something”。然后像这样:
var path = document.getElementById('something').src;
var extidx = path.lastIndexOf('.');
var extension = path.substr(extidx+1);
为图像标签添加id=“something”。然后像这样:
var path = document.getElementById('something').src;
var extidx = path.lastIndexOf('.');
var extension = path.substr(extidx+1);
问题中的HTML格式不正确。这真的是一个准确的片段吗?链接到目标页面 无论如何,这样的代码应该可以工作:
var payloadImage = document.querySelector ("#current_photo div img");
if (/\.gif$/i.test (payloadImage.src) ) {
// DO GIF ACTION HERE
}
else if (/\.jpg$/i.test (payloadImage.src) ) {
// DO JPG ACTION HERE
}
else {
// DO WHATEVER HERE
}
问题中的HTML格式不正确。这真的是一个准确的片段吗?链接到目标页面 无论如何,这样的代码应该可以工作:
var payloadImage = document.querySelector ("#current_photo div img");
if (/\.gif$/i.test (payloadImage.src) ) {
// DO GIF ACTION HERE
}
else if (/\.jpg$/i.test (payloadImage.src) ) {
// DO JPG ACTION HERE
}
else {
// DO WHATEVER HERE
}
除了完全为您编写代码之外,您尝试了什么?我们如何帮助您解决您的问题?嗯,实际上这种方法对我来说是全新的。我知道的唯一办法是从一张我知道路径的照片上取下分机。由于这张图片没有id或名称,我不知道确切的路径是什么,我实际上很困惑,不知道从哪里开始,或者如何处理它…除了完全为您编码之外,您尝试了什么,我们如何帮助您解决您的问题?嗯,这种方法对我来说是全新的。我知道的唯一办法是从一张我知道路径的照片上取下分机。由于这张图片没有id或名称,我不知道确切的路径是什么,我实际上很困惑,不知道从哪里开始,或者如何接近它…如果这是我的网站,我肯定会这样做。但我正在为别人的网站编写greasemonkey脚本,如果是我的网站,我肯定会这么做。但我正在为别人的网站编写一个greasemonkey项目脚本。如果它是
haha.gif.jpg
,它就会失败。(这是jpg
图像的有效文件名。)@Derek:怎么会这样?请注意,regex键关闭了最后一个扩展名--就像操作系统一样。哦,在结尾没有看到$
。。。我的错。对于结尾有URL参数的情况,这会失败。例如,如果它是haha.gif.jpg
,它将失败。(这是jpg
图像的有效文件名。)@Derek:怎么会这样?请注意,regex键关闭了最后一个扩展名--就像操作系统一样。哦,在结尾没有看到$
。。。我的错。对于结尾有URL参数的情况,这会失败。比如