仅替换 iframe 源的一部分

Replacing only part of an iframe src

本文关键字:一部分 iframe 替换      更新时间:2023-09-26

我需要使用 javascript 来更改 iframe src 的一部分,有没有办法在该 iframe src 中将 '500' 更改为 '800'?我尝试了以下代码,但它不起作用。如果有人能帮忙,将不胜感激。

        function bigPhotosets() {
            $('iframe.photoset').each(function(){
                $(this).attr('src').replace('500','800');
                $(this).attr('width').replace('500','800');
            });
        }
        bigPhotosets();

.replace()返回一个新字符串,你没有对它做任何事情。

您需要将src设置为此新字符串:

var newSrc = $(this).attr('src').replace('500','800');   
$(this).attr('src', newSrc);

还有更快的方法可以做到这一点。

这段代码只是在 src 属性中返回,替换一些文本,什么都不做。试试这个:

$(this).attr('src', $(this).attr('src').replace('500','800') );

我相信SLaks的答案是正确的。当我在您的 tumblr 页面上的控制台中使用他的代码时,它正确地更改了源代码。但是,宽度没有改变,需要调整高度。

我将以下代码粘贴到 http://jtestblog1.tumblr.com/post/26387860417/aquaticwonder-dancing-alone-portraits-by-caiti 上的控制台(在 Chrome 上),它按照您所说的工作方式工作。

function bigPhotosets() {
    $('iframe.photoset').each(function(){
        var newSrc = $(this).attr('src').replace('500','800');
        $(this).attr('src', newSrc).width(800).height(912);
    });
}
bigPhotosets();

我会担心您的 URL 中存在另一个500。这会弄乱网址。如果它总是在 URL 的末尾,您可能希望使用正则表达式,如果它只出现在 URL 的末尾,则只会替换 500。

即将第 3 行更改为

var newSrc = $(this).attr('src').replace(/500$/,'800');

仅当 500 位于 URL 的末尾时,它才有效(如果大小始终位于 URL 的末尾,这是一件好事)。在你的 tumblr 上,大小 URL 的末尾,所以这个正则表达式有效。

最简单的方法。将旧的 src 替换为相同的 src,但 500 替换为 800。

$(this).attr('src', $(this).attr('src').replace('500','800') );

在第一个答案的评论中的链接中,它不起作用,因为 iframe src 中没有 500 但有 600

另请注意,您必须同时注意宽度属性和 css 宽度。

这会给你

$(this).attr('width', 800);
$(this).css('width', 800);

在此之后,唯一剩下的就是根据您更改宽度的方式按比例调整 iframe 的高度。这是oldHeight*800/500(或在您的实际情况下为800/600)。