仅替换iframe src的一部分

时间:2012-07-04 23:56:01

标签: javascript jquery

我需要使用javascript来更改iframe src的一部分,是否有办法更改' 500'到' 800'在那iframe src?我尝试了以下代码,但它没有用。如果有人可以提供帮助,我们将不胜感激。

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

        bigPhotosets();

4 个答案:

答案 0 :(得分:3)

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

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

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

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

答案 1 :(得分:0)

这段代码只是返回src属性,替换了一些文本而不再做任何事情。试试这个:

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

答案 2 :(得分: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的正则表达式。

即。将第3行更改为

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

只有当500位于URL的末尾时才会起作用(如果大小总是在URL的末尾,这是一件好事)。在你的tumblr上,URL的末尾的大小是,所以这个正则表达式可以工作。

答案 3 :(得分: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)。