在窗口调整大小时,从一个.js文件中调用Javascript。

16 浏览
0 Comments

在窗口调整大小时,从一个.js文件中调用Javascript。

如何监听浏览器窗口调整大小的事件?\n有一种jQuery的方法可以监听调整大小的事件,但是我希望不为了这一个需求而将其引入到我的项目中。

0
0 Comments

从上述内容中可以整理出问题的原因和解决方法。

问题的原因是,不能覆盖window.onresize函数,这是一种不好的做法。解决方法是创建一个函数来为对象或元素添加事件监听器。如果监听器不起作用,则可以作为最后的手段覆盖对象的函数。这是一种常用的方法,例如在jQuery等库中使用。

解决方法的具体实现是,创建一个addEvent函数,接受三个参数:对象或元素、事件类型和回调函数。通过判断对象是否为空,以及对象是否支持addEventListener方法和attachEvent方法,来添加事件监听器。如果都不支持,则直接覆盖对象的函数。

使用addEvent函数时,可以传入window对象和resize事件类型,以及一个回调函数的引用。也可以使用匿名函数作为回调函数。

需要注意的是,IE 11不再支持attachEvent方法,未来的首选方式是addEventListener方法。

此外,需要注意避免使用JavaScript保留字作为变量名,可以将参数object改为obj。

总结起来,解决问题的方法是使用addEvent函数为对象或元素添加事件监听器,避免覆盖window.onresize函数。这种方法可以适用于各种浏览器,并且是一种良好的编程实践。

0
0 Comments

问题的出现原因:

问题是关于在窗口调整大小时从.js文件中调用JavaScript的方法。原始问题的提问者在评论中提到了addEventListener方法,但没有给出代码示例。因此,问题的出现原因是提问者想要知道正确的方法来在窗口调整大小时调用JavaScript函数。

解决方法:

首先,可以使用addEventListener方法来添加一个窗口调整大小的事件监听器。这是首选的方法,因为它可以避免覆盖window.onresize事件。以下是一个示例代码:

window.addEventListener('resize', function(event){
  // 在这里执行相关操作
});

这是最简单直接的答案。如果不希望在以后需要删除该事件监听器,可以直接使用这种匿名的事件监听器的方法。但是,这种方法并不是最佳实践,因为在后续的操作中可能需要删除这个事件监听器。为了管理事件监听器的生命周期,最好将监听函数提取到一个单独的函数中,以便以后可以使用removeEventListener方法来删除它。

从一个.js文件中调用JavaScript函数的问题可以通过使用addEventListener方法来解决。这种方法可以避免覆盖window.onresize事件,并且可以方便地管理事件监听器的生命周期。如果不需要删除事件监听器,可以直接使用匿名的事件监听器。但是,最佳实践是将监听函数提取到一个单独的函数中,以便以后可以使用removeEventListener方法来删除它。

0
0 Comments

问题的原因是因为在调整窗口大小时,需要调用一个JavaScript函数。而解决方法是通过添加resize事件的监听器来调用JavaScript函数,而不是替换resize事件。另一种方法是创建一个DOM事件的单一处理程序。jQuery可能会确保在所有浏览器中一致地触发resize事件,但需要在Firefox、Safari和IE中进行测试。

其中一个潜在的问题是,通过重写事件,无法将多个操作附加到一个事件上。最佳方法是使用addEventListener/attachEvent组合,以使JavaScript与页面上可能执行的任何其他脚本兼容。

另一种解决方法是使用jQuery的on方法:

$ (window).on('resize', function (e) { console.log('message 1'); });

需要注意的是,不要覆盖window的函数,使用事件监听器来解决这个问题。

在ECMAScript 6中,可以使用以下语法:

window.onresize = () => { /* code */ };
window.addEventListener('resize', () => { /* code */ });

可能会有一个错误是使用document.addEventListener('resize' ...);,正确的应该是window.addEventListener('resize' ...);。

另外,需要注意在添加监听器时,参数true表示事件是否捕获。应该确定是否需要捕获事件,通常不重要,除非另一个函数使用了事件捕获。

0