【发布时间】:2013-05-12 07:45:34
【问题描述】:
我有一个脚本(对于这个问题:script.js),它被注入到每个页面(连同jquery.js)。script.js 应该添加一个额外的元素(elem ) 到页面,单击该页面时会在script.js 内调用my_func。
麻烦的是,当元素被点击时,总是有一个ReferenceError: my_func is not defined,但它是在script.js中定义的。我意识到这与“隔离环境”的事情有关..但我不知道如何解决这个问题..
PS.:Chrome、JS 和 JQuery 的新手。
历史:Python :)
一些代码(只是添加了元素):
function on_ready(){
var wanted = get_desired() // fetch desirable elements
add_to_all(wanted) // this calls add for every element in wanted
}
function add(obj_to_edit) {
if (obj_to_edit.css('position') == 'static'){
obj_to_edit.css('position','relative')}
var elem = $("<div ... onclick='my_func(this)'>...</div>")
obj_to_edit.mouseenter(show_button);
obj_to_edit.mouseleave(hide_button);
elem.prependTo(obj_to_edit);
elem.hide()
}
function my_func(elem){
console.log($(elem).parent().html)
}
$(document).ready(on_ready);
这个想法是当有人将鼠标悬停在某个对象上时,elem 会弹出,当用户单击它时,它会记录一条消息..
【问题讨论】:
-
你有没有文档准备功能里面的
my_func。还要确保script.js在jquery.js之后。 -
@saravanan 是的。我有一个设置一切的功能,它位于
$(document).ready(...)。是的。。 -
如果您使用的是内联
onclick,请尝试将其更改为在您的脚本中定义。 -
@BeardFist 实际上调用是
my_func(this),所以我得到了元素,因为我可能已经为这些“元素”注入了多个。 -
您需要发布一个简单的代码示例来演示该问题。我们不是读心术的人,如果没有看到代码,我们就无法判断你做错了什么,并且试图用这样的问题/答案来预测它会令人沮丧。
标签: javascript google-chrome-extension referenceerror