我在看到几个相关的问题后提出了这个问题,在stackoverflow。我从how to detect if an extension is installed开始。我选择了在某些页面上使用内容脚本将正文添加到正文的方法。下面是我它是怎么...Chrome扩展:如何检测是否使用内容脚本安装了扩展
的manifest.json
{
"name": "Install Check",
"content_scripts": [
{
"matches": ["http://host.com/*"],
"js" : ["insert_node.js"]
}
],
"permissions": [
"tabs", "host.com/*"
]
}
insert_node.js(内容脚本)
var insert_node = document.createElement('div');
insert_node.id = "HOST_SITE";
document.body.appendChild(insert_node);
主页
<html>
<head>
</head>
<body>
<h1>This is a host site. Welcome!!!</h1>
<script src="jquery.js"></script>
<script src="notification.js"></script>
</body>
</html>
扩展安装脚本
$(document).ready(function() {
if ($('#HOST_SITE').length > 0) {
alert("you have our extension installed");
} else {
alert("not installed");
}
});
我的问题是,消息not_installed
的警报总是在chrome可以注入DOM节点之前弹出。我在manifest.json over here中阅读了run_at
属性。但是这也没有解决问题。我尝试了所有三个document_start
,document_idle
,document_end
的值。我在这里做错了什么?
当了“扩展的安装脚本”执行?你检查插入是否实际发生并插入了div? – oliverguenther 2012-02-16 11:03:10
是插入正在发生。我仔细检查了一下。 – vikmalhotra 2012-02-17 05:22:19