等待Modernizer从用户脚本加载jQuery
我正在开发一个GoogleChrome用户脚本,它增强了一个通过下载的站点 我将使用站点的jQuery实例,但用户脚本在jQuery加载之前开始执行 是否有一种确定的方法可以从Greasemonkey脚本或userscript截取Modernizer的等待Modernizer从用户脚本加载jQuery,jquery,greasemonkey,userscripts,modernizr,Jquery,Greasemonkey,Userscripts,Modernizr,我正在开发一个GoogleChrome用户脚本,它增强了一个通过下载的站点 我将使用站点的jQuery实例,但用户脚本在jQuery加载之前开始执行 是否有一种确定的方法可以从Greasemonkey脚本或userscript截取Modernizer的load()/完成机制 或者在window中轮询窗口[jQuery]/中的“$”等是否是唯一的解决方案 (我试图避免加载我自己的jQuery实例,在轮询过程中,我有时会错过我想要截取的文档的第一次更改。)我不确定你想做什么,但下面的脚本可能会帮助你
load()
/完成机制
或者在window
中轮询窗口[jQuery]
/中的“$”等是否是唯一的解决方案
(我试图避免加载我自己的jQuery实例,在轮询过程中,我有时会错过我想要截取的文档的第一次更改。)我不确定你想做什么,但下面的脚本可能会帮助你。它将延迟html页面中的任何内联脚本,并将在Modernizer返回时加载所有脚本后执行
在现代化加载功能之前定义以下行
docready=[],$=function(){return{ready:function(fn){docready.push(fn)}}},
在Modernizer加载完成时编写以下脚本
$ = jQuery;
jQuery(document).ready(function() {
for(n in docready) docready[n]();
});
听起来您需要等待window.onload,当所有内容都已加载时,它将触发
文档结束和文档空闲都保证在解析整个DOM之后运行,这是脚本开发人员感兴趣的常见事情。如果出于某种原因确实需要在window.onload之后运行脚本,可以检查document.readystate属性。如果它是“完成的”,那么您可以假定发生了onload。如果不是,那么您可以监听onload。如何在用户脚本中“在modernizer load函数之前定义一行”?所有的Modernizer代码都在第三方网站上,我无法更改其代码。也许我只是误解了什么。在你加载Modernizer脚本之前,在你的用户脚本中。也许我没有明确说明我没有在我的用户脚本中加载Modernizer,第三方站点通过其
中的传统
标记直接加载它。我感觉该站点只有在获得onload
后才开始加载jQuery,但我会回去检查一下。谢谢…遗憾的是,我现在只能偶尔上网,所以我还没有回到这一点,我的代码仍然使用轮询,到目前为止仍然有效,但它的不确定性仍然困扰着我。啊,没错。我期待着看到你的想法:)