Jquery $(window).on(“load”...和chrome extensions

时间:2017-12-08 11:46:23

标签: jquery google-chrome-extension

我正在制作Chrome扩展程序,我需要在弹出窗口加载时为元素添加一些监听器和类。

到目前为止,我已经这样做了:

$("body").ready(main());

我在main函数中添加了元素,问题是,main运行时元素不存在,所以它不起作用。

我看了一下,发现应该使用$(window).load()。我试过,但得到了jquery错误。我看了一下,发现$(window).on(“load”,main())应该可以正常工作。我试过了,就像我的$(“身体”)一样“工作”。准备好了...... 对于一些准备好的,即使是“加载窗口”的东西也不会等待我的元素被完全加载。 我想做的简单测试是:

function main(){
    console.log($("#toto").attr("id"));
}

当我打开扩展程序的弹出窗口时,它会在控制台中返回“undefined”,但是如果我粘贴相同的代码,则会返回“toto”。 我怎么能让这个工作好吗?

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

$(document).ready(function(){
//your code here
var id = $("#toto").attr("id");
console.log(id);
});

如果需要,您可以使用单独的功能,但必须先定义该功能:

function main(){
    console.log($("#toto").attr("id"));
}
$(document).ready(main());

答案 1 :(得分:0)

好的,这很奇怪,但我解决了这个问题:

window.onload=function(){
    main();
}

while $(window).load(...或$(window).on(“load”...没有用。