Google chrome extension 创建Chrome扩展内容脚本时未定义函数

Google chrome extension 创建Chrome扩展内容脚本时未定义函数,google-chrome-extension,Google Chrome Extension,我正在编写一个Chrome内容脚本,当我将其注入DOM时: "<a href='#' onclick='alert(\"Hi!\");return false;'>Hi</a>" “” 它工作正常(当我点击它时会弹出警报),但是如果我为警报创建一个函数,它会说函数未定义。例: "<a href='#' onclick='alertPlease(\"Hi!\");return false;'>Hi</a>" function alertPlea

我正在编写一个Chrome内容脚本,当我将其注入DOM时:

"<a href='#' onclick='alert(\"Hi!\");return false;'>Hi</a>"
“”
它工作正常(当我点击它时会弹出警报),但是如果我为警报创建一个函数,它会说函数未定义。例:

"<a href='#' onclick='alertPlease(\"Hi!\");return false;'>Hi</a>"

function alertPlease(x){
     alert(x);
}
“”
功能警报(x){
警报(x);
}
我所有的代码都是相同的内容脚本js文件

我是否必须在后台加载另一个js文件后放置任何可以使用的代码?我尝试添加一个带有“alertPlease();”的背景页面功能,但也不起作用

任何提示都将不胜感激

谢谢

在manifest.json文件的“content\u scripts”下指定任何脚本

{
“名称”:“我的分机”,
“内容脚本”:[{
“匹配项”:[“”],
“css”:[“style.css”],
“js”:[“jquery-1.5.js”,“script.js”]
}]
}
内容脚本以“.”格式运行。网页和内容脚本无法看到彼此的JavaScript变量(尽管它们可以看到相同的DOM)。在DOM中添加
onclick
属性时,处理程序是在网页的世界中创建的,而不是在扩展的世界中创建的,因此代码无法访问您定义的其他函数。与使用
onclick
处理程序不同,您应该用纯Javascript定义事件侦听器,然后使用
addEventListener
附加它


孤立世界是提高安全性和稳定性的一个特征。如果您正在开发中,则情况类似。

它就在那里。扩展只有1个js脚本,该脚本只有2个步骤:用onclick attr注入锚标记,并在单击时注入函数。如果我使用内联警报,它就会工作。嗯,我只是在扩展中使用jQuery,所以我没有遇到这个问题,但是在DOM中与js交互的唯一方法似乎是注入脚本标记。看一看,;我想这可能就是你想要的。回答得好!但需要注意的是,您无法正常访问这些内部JavaScript变量。但是,如果您愿意,您“可以”看到通过消息传递将页面JavaScript变量提取到扩展中。
{
  "name": "My Extension",
  "content_scripts": [{
    "matches": ["<all_urls>"],
    "css": ["style.css"],
    "js": ["jquery-1.5.js", "script.js"]
  }]
}