2

我在谷歌Chrome扩展的content.js的follwing代码:添加一个按钮,点击时调用内容脚本功能?

jQuery(document).ready(function() { 
    jQuery("body").html('<input type="button" id="soso" value="asd" onclick="goFrame()" />'); 
}); 
function goFrame() { 
    alert('Value'); 
} 

按钮创建成功,但是当我点击它的消息没有出现,我在得到了follwing错误谷歌Chrome控制台:

Uncaught ReferenceError: goFrame is not defined

+0

按钮您creatings的onclick指向goFrame是在页面的上下文。代码中的goFrame函数位于内容脚本的上下文中,因为它在声明的位置。在'JQuery(“body”)...'后面添加'document.querySelector('#sos')。onclick = goFrame;' – PAEz 2012-07-28 19:09:36

+0

@PAEz这很容易学习jQuery;)绑定一个点击事件,使用'。点击()' - http://api.jquery.com/click/ – 2012-07-28 20:42:09

+0

@Rob WI有一个SHOCKING内存,所以喜欢坚持只是JS,尤其是因为我只做Chrome,所以所有这些不错的新东西.. ..保持对我来说简单:) – PAEz 2012-07-28 20:56:08

回答

4

首先阅读Chrome extension code vs Content scripts vs Injected scripts

为了解决这个问题,摆脱掉内嵌事件侦听器,以及事件动态绑定:

... 
    var $input = $('<input type="button" id="soso" value="asd">').click(goFrame); 
    jQuery("body").html($input); 
}); 
function goFrame() { 
    alert('Value'); 
} 
相关问题