您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
For ancient browsers
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/435127/986124/ResizeObserver%20polyfill.js
class ResizeObserver { constructor(callback) { this.observables = []; // Array of observed elements that looks like this: // [{ // el: domNode, // size: {height: x, width: y} // }] this.boundCheck = this.check.bind(this); this.boundCheck(); this.callback = callback; } observe(el) { if (this.observables.some((observable) => observable.el === el)) { return; } const newObservable = { el: el, size: { height: el.clientHeight, width: el.clientWidth } } this.observables.push(newObservable); } unobserve(el) { this.observables = this.observables.filter((obj) => obj.el !== el); } disconnect() { this.observables = []; } check() { const changedEntries = this.observables.filter((obj) => { const currentHeight = obj.el.clientHeight; const currentWidth = obj.el.clientWidth; if (obj.size.height !== currentHeight || obj.size.width !== currentWidth) { obj.size.height = currentHeight; obj.size.width = currentWidth; return true; } }).map((obj) => obj.el); if (changedEntries.length > 0) { this.callback(changedEntries); } window.requestAnimationFrame(this.boundCheck); } }