javascript - 如何清除这些间隔?

标签 javascript html iframe intervals clearinterval

我正在创建自己的类似 JSFiddle 的 web 应用程序,我想实现元素大小调整,但保持文档高度不变,因此我必须在每次调整大小时重新计算元素尺寸。 我有这个脚本:

var a = setInterval(setHeight, 1);
var b = setInterval(formsWidth, 1);
iframe.onResizeStart = a;
html.onResizeStart = b;
iframe.onResizeStop = clearInterval(a);
html.onResizeStop = clearInterval(b);

Iframe 是呈现用户代码的元素,HTML 是我的三个文本区域之一。我希望此脚本在 iframe 调整大小时重新计算文本区域高度,并在更改其中之一的宽度时重新计算其宽度。

我设法完成了这项工作,但我无法停止间隔,我需要帮助。 上面的代码现在根本不起作用,可能是因为调用了变量 onResizeStart。

如果有人能帮助我,我将不胜感激。 我不想使用 jQuery。

最佳答案

它不起作用,因为您几乎在调用 setInterval() 之后立即调用clearInterval(),因此间隔永远没有机会执行。您需要存储 a 和 b,然后在调整大小完成后对它们调用clearInterval()。

编辑:更仔细地观察这一点,只需将对clearInterval()的每个调用包装在一个函数中。这样,clearInterval 不会立即执行,而是在 onResizeStop 事件触发时执行。

iframe.onResizeStop = function() { clearInterval(a); };

关于javascript - 如何清除这些间隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35562662/

相关文章:

javascript - 多个隐藏/显示文本

javascript - 有人知道为什么我的点击在这个核心崩溃组件测试中没有触发吗?

javascript - jQuery 选择器,包含等于

javascript - 通过 jQuery Validate 插件使用 HTML 5 验证消息

html - IE中旋转图片的宽度问题

javascript - 负面展望中的字符串被部分捕获

html - 如何在css3中制作相同高度和宽度的div?

javascript - 域保护的 iframe

javascript - 使用 Iframe 加载 facebook 注销 URL

Phonegap 上的 Android Webview