0

我需要使用 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();
4

4 回答 4

3

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

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

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

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

于 2012-07-04T23:57:50.643 回答
0

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

$(this).attr('src', $(this).attr('src').replace('500','800') );
于 2012-07-04T23:58:42.530 回答
0

我相信 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();

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

即将第三行改为

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

仅当 500 在 URL 的末尾时才有效(如果大小总是在 URL 的末尾,那是一件好事)。在您的 tumblr 上,大小位于URL 的末尾,因此此正则表达式有效。

于 2012-07-07T01:28:26.077 回答
0

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

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

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

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

哪个会给你

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

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

于 2012-07-11T10:27:57.600 回答