gpt4 book ai didi

javascript - 元素的 src 属性替换,以便在加载时首先呈现修改后的元素

转载 作者:行者123 更新时间:2023-12-03 11:36:39 25 4
gpt4 key购买 nike

由于服务器端的限制,我打算使用 JavaScript 替换网站上的一些图像,以便它们成为页面加载时第一个也是唯一一个看到的图像。

我查看了Changing src of dynamically loaded images with jqueryjQuery - Replace main image source with dynamic image source但没有直接关系。

我在使用下面的代码时遇到的问题是,第一个图像将首先显示,然后是第二个图像,而所需的结果是第二个图像在加载时显示。

在源代码中,此脚本添加在导航的正下方,位于所有要更改的图片之上。

//这替换了右侧边栏的图像

function changeButtons(){
var images = $("#rightcolumn img");
var imageSrc;
var loginName = "login.gif";
var logoutName = "logout.gif";
var onlineOrdersName = "myonlineorder.gif";
var basketName = "basket.gif";
var checkoutName = "checkout.gif";
var checkoutOffName = "checkout_off.gif";

images.each( function(){

imageSrc = ($( this ).attr("src"));
varsrcnew = "";

if(imageSrc.indexOf(loginName) >= 0)
{
srcnew = "pathToFile/login_new.png";
$( this ).attr("src", srcnew)
}
else if(imageSrc.indexOf(logoutName) >= 0)
{
srcnew = "pathToFile/logout_new.png";
$( this ).attr("src", srcnew)

}

...
...
...


});
}

document.addEventListener('DOMContentLoaded', function() {
changeButtons();
});

</script>

最佳答案

如果您无法更改文件中的 HTML,您可以隐藏图像直到它们被替换。

首先,用CSS隐藏图像:

#rightcolumn img {
visibility: hidden;
}

如果您无法访问样式表,您可以创建自己的样式表(在 head 中):

$('head').append('<style>#rightcolumn img {visibility: hidden;}</style>');

然后将 src 替换为 JavaScript:

$(document).ready(function () {
var $images = $("#rightcolumn img");
$images.each(function (idx, img) {
var imgPath = img.src.split('/'),
imgName = imgPath.pop();
imgName = imgName.split('.');
$(img).load(function () {
$(this).css('visibility', 'visible');
});
img.src = imgPath.join('/') + '/' + imgName[0] + '_new.' + imgName[1];
});
});

关于javascript - 元素的 src 属性替换,以便在加载时首先呈现修改后的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26469844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com