当我开始开发越来越多的复杂Javascript解决方案时,我想知道javascript给我什么样的选项来监控环境中的变化。我已经看到了很多解决方案,不断地ping任何他们想要监视的元素,但对于任何类型的资源繁重的应用程序(或任何情况取决于开发人员的标准)变得臃肿和过于hackish成为一个可行的方法。这让我想到了一个问题,“javascript的onchange事件有什么限制?”。具体来说,现在我正在尝试监控窗口的大小。有没有办法利用.onchange事件这样的事情?你会如何解决这个问题?
谢谢!我很想知道每个人都要说些什么。
答案 0 :(得分:4)
onchange属性是一个DOM属性。它不是由Javascript提供的。 W3schools报告只有一些元素支持其使用,每their page about the onchange event:
由以下HTML标记支持:
<input type="text">, <select>,
<textarea>
以下JavaScript支持 对象:
fileUpload,select,text,textarea
如果要监视窗口大小,基本上有两种选择: - 使用onresize属性 - 设置通过轮询检查的间隔。
答案 1 :(得分:4)
可以使用onresize监控窗口的大小。
正如Rahul所说,onchange事件适用于fileupload,select,text和textarea。但是,只有当焦点从项目转移到其他内容时才会触发,内容也会发生变化。
答案 2 :(得分:0)
尝试jQuery,它很小而且非常强大。
jQuery有两个应该对你有用的功能:width()和height()
示例(基于上面链接的文档中的示例):
function showWidth(ele, w) {
$("someDiv").text("The width for the " + ele +
" is " + w + "px.");
}
$('#someElement').change(function () {
showWidth("document", $(document).width());
});
当然,这同样适用于height()。祝你好运。
答案 3 :(得分:0)
window.onresize=function(){
exampleFunction();
}
就是我做的。我不太热衷于onchange,如果你用JS改变了元素,你也可以在同一个JS中调用该事件。 (为什么这样做:JS - &gt;元素 - &gt; JS,当你可以去:JS - &gt;元素和JS)