jQuery错误-无法调用方法';指数';未定义的
我有以下代码来解决在z索引中所有内容上的flash跳跃问题:jQuery错误-无法调用方法';指数';未定义的,jquery,Jquery,我有以下代码来解决在z索引中所有内容上的flash跳跃问题: $("iframe").each(function(){ var ifr_source = $(this).attr('src'); var wmode = "wmode=opaque"; if(ifr_source.indexOf('?') != -1) { var getQString = ifr_source.split('?'); var oldString = getQ
$("iframe").each(function(){
var ifr_source = $(this).attr('src');
var wmode = "wmode=opaque";
if(ifr_source.indexOf('?') != -1) {
var getQString = ifr_source.split('?');
var oldString = getQString[1];
var newString = getQString[0];
$(this).attr('src',newString+'?'+wmode+'&'+oldString);
}
else $(this).attr('src',ifr_source+'?'+wmode);
});
由于某种原因,我在indexOf上出现了错误,它正在破坏网站。但奇怪的是,它并没有完全破坏它,只是我在那里有一个css调整大小的补丁
未捕获的TypeError:无法调用未定义的方法“indexOf”
网址如下:
我很想知道为什么会发生这种情况。可能您的
iframe
没有声明任何src
属性
要避免错误,请执行以下操作:
var ifr_source = $(this).attr('src') || "";
编辑:在此处查看源确实是:
<iframe id="likeit"></iframe>
直接从
this
获取src
。您不需要为此创建整个jQuery对象
ifr_source = this.src;
作为奖励,
this.src
返回一个空字符串,即使属性src
未设置,而jQuery的attr
返回未定义的,并且在使用indexOf
之前必须执行一个检查,这很奇怪,因为这样就不会产生所需的效果,添加?wmode=不透明。但它确实停止了错误。如果添加它,将导致无限循环,因为iframe将引用同一页。抱歉,我不明白,我的目标是检查iframe src中是否有问号,如果有,我可以将参数附加到该字符串(这将停止youtube flash视频的z索引问题。我不明白为什么在你检查了新代码后,它会导致一个inifinte循环,这不是违背了代码的要点吗?感谢你的时间和耐心。我的全部观点是忽略没有源代码的iframe
,它应该可以正常工作(像以前一样)框架指向某处。
ifr_source = this.src;