[英]How can one simulate events triggered on load when adding javascript to a page through the browser's console?
我目前正在研究要放置在第三方网站上的脚本...为了对其进行测试,我正在打开第三方网站并在浏览器控制台(Chrome)中运行脚本。 我需要在window.load()上执行一些代码,但是这种测试方法无法执行该代码。 我假设这是因为加载事件发生后绑定了绑定到窗口的代码,因此永远不会被触发。 我的问题分为两部分:
实际上是因为在触发load事件之后添加window.load而不触发它的原因吗? 还是这是错误的,并且其他地方可能有问题?
像这样通过控制台添加javascript时,如何最好地模拟加载时触发的事件?
if(document.readyState === "complete"){
将检测加载是否已经完成。
您可以轻松地使用else,然后在尚未完成加载的情况下放入load事件处理程序。 类似于以下内容:
if(document.readyState === "complete"){
// do stuff
}else{
// attach load handler
}
我想做的是定义一个pageLoaded
类型的函数,该函数可以在以后的代码中运行,这样,如果页面已被加载,我可以立即调用它,或者在页面加载发生时让加载处理程序调用它。 就像是:
var pageLoaded = function(){alert("Page is ready!");}
if(document.readyState === "complete"){
pageLoaded()
}else{
// attach load handler, calls pageLoaded()
}
当然,由于您将问题标记为jQuery,因此始终可以将所有代码包装在jQuery方便的dandy ready函数速记中:
$(function(){
// do stuff
});
这会将您的匿名函数传递给jQuery,如果与上述普通javascript不同,它将执行非常相似的操作。
在函数中定义事件,然后从控制台调用该函数。
function do_this_on_load() { alert("Loaded!") }
$(window).load(do_this_on_load);
然后您可以从控制台运行:
do_this_on_load();
看看它在页面上做什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.