我正在尝试创建一个获取XMLrequest的扩展并获取信息并将其写入浏览器操作弹出窗口的html页面。这可能吗?
这是我的清单文件
//manifest.json
"name":"myExtension",
"version":"1.0",
"manifest_version": 2,
"browser_action": {
"default_icon":"favicon.ico",
"default_popup": "popup.html"
}
我的浏览器操作弹出html文件:
<!--popup.html-->
<!DOCTYPE html>
<html>
<head>
<title>My Title</title>
<script src="popup.js"></script>
<script src="jquery.min.js"></script>
</head>
<body>
<p>Hello</p>
<p class="add"></p>
</body>
</html>
我的剧本:
//popup.js
//Code up to this point gets xml info, I didn't include
var info = //string from xml request
$.(".add").html(info);
我在弹出窗口中看到了Hello段落,但是从来没有应该在add段落中的信息,当我检查控制台时,它告诉我$是未定义的。我怎样才能让jquery为我工作?我是一个相对较新的人,所以如果这很简单,我很抱歉,我不明白。
答案 0 :(得分:1)
有几点是错误的
添加脚本的顺序;它应该是:
<script src="jquery.js"></script>
<script src="popup.js"></script>
你的选择器错了;它不应该是$.(".add")
而是$(".add")
:
$(".add").html(info);
您需要将jQuery命令包装到DOM ready / on load:
$(function() {
var info = //string from xml request
$(".add").html(info);
});
此外,如果您不打算在那里使用脚本,则无需将脚本添加到content_scripts
。
您可以从后台页面和弹出窗口完全访问扩展资源。
答案 1 :(得分:-1)
您需要将它添加到manifest.json中:
content_scripts": [
{
"js": ["jquery.js"]
}
]
然后会自动包含它。我会在jquery之后将你的popup.js放在那里,以确保首先加载jQuery。所以喜欢:
"js": ["jquery.js", "popup.js"]