iFrames的jquery计时问题?

时间:2013-12-12 14:51:41

标签: jquery

我正在尝试使用jQuery从页面上的所有iFrame中删除滚动条。

我正在使用以下代码:

$("iframe").each(function() { 
                         $(this).css({"overflow":"hidden","scrolling":"no"});
                    });

问题在于,随着我不断更新页面,它有时会起作用,有时它不会让我相信这里存在某种时间问题。当上面的代码运行时,iFrames还没有被加载?也许加时间延迟?

代码包含在$(document).ready(function()处理程序

4 个答案:

答案 0 :(得分:0)

试试这个

$(document).ready(function(){
   $("iframe").each(function() { 
      $(this).load(function(){
             $(this).css({"overflow":"hidden","scrolling":"no"});
      }
    });
});

EDITED

答案 1 :(得分:0)

使用javascript设置样式和属性根本不起作用,因此您唯一的选择是在没有javascript的情况下设置它

<iframe src="http://url.com" style="overflow:hidden" scrolling="no"></iframe>

FIDDLE

答案 2 :(得分:0)

问题是你可能也在使用javascript加载iframe的内容。由于javascript是按设计单线程的,因此iframe内容的加载将被延迟,直到执行其余的javascript之后。

在iframe中加载内容时,您应该将该函数添加为回调

此处已回答了类似的问题 jQuery .ready in a dynamically inserted iframe

答案 3 :(得分:0)

为什么要使用jQuery / JavaScript?

简单的CSS可以将其关闭

iframe {
    overflow: hidden;
}

没有循环,不担心它们是否是动态的,它应该起作用。如果您需要启用它,请使用类创建另一个规则并打开滚动。