gpt4 book ai didi

javascript - 在窗口大小调整时重新加载 JS 文件

转载 作者:行者123 更新时间:2023-12-03 11:40:58 28 4
gpt4 key购买 nike

如何在窗口大小调整时重新加载单个 JS 文件?每次调整窗口大小时,我只需要重新加载一个 JS 文件,这样它就会重置 JS 文件。我很久以前在这里找到过一个脚本,但我找不到他。

<script src="js/scripts.js" type="text/javascript"></script>

谢谢帕斯卡

最佳答案

我没有看到 jQuery 标记,因此其他响应可能对您不起作用。

您基本上需要捕获窗口调整大小事件,该事件发生在(实际上)浏览器调整大小的每个像素上。这意味着您需要使用 setTimeout 来等待完成调整大小(否则,每次调整大小都会重新加载脚本 1000 倍)。然后,您可以将脚本的源设置为同一文件,并附加一个时间戳以强制进行非缓存刷新。

以下是我的实现方法:( http://jsfiddle.net/gbez11h2/ )

HTML:

<script id="scriptToReload" type="text/javascript" src="path/to/script.js">

Javascript:

;(function (w, d) {
"use strict";

var timeout = null,
scriptEl = d.getElementById('scriptToReload'),
scriptSrc = scriptEl.src,
delay = 500; // How long to wait (in ms) before deciding resize is complete

w.onresize = function () {
// Clear previous timeout to indicate resizing is still occurring
w.clearTimeout(timeout);

timeout = w.setTimeout(function () {
// Resizing is (probably) done, now we can reload the script
// Start by destroying previous script element
scriptEl.parentElement.removeChild(scriptEl);

// Now we recreate the same element, with a timestamp cache-buster
scriptEl = d.createElement('script');
scriptEl.type = 'text/javascript';
scriptEl.src = scriptSrc + '?_=' + (new Date().getTime());

// And insert it into the DOM to be (re-)loaded
d.getElementsByTagName('head')[0].appendChild(scriptEl);
}, delay);
};
})(window, document);

请注意,Javascript 需要遵循原始的 <script>定义,或放入window.onload功能。

关于javascript - 在窗口大小调整时重新加载 JS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26275535/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com