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