2012-01-31 37 views
3

这是我的清单:简单的JS代码注入与Chrome扩展

{ 
    "name": "rabbi", 
    "version": "1.0", 
    "description": "something", 
    "browser_action": { 
    "default_icon": "icon.png", 
    "popup": "popup.html" 
    }, 
    "content_scripts": [ { 
     "js": ["jquery-1.7.1.min.js", "rabbi.js"], 
     "matches": [ "http://*.facebook.com/*", "http://facebook.com/*", "https://*.facebook.com/*", "https://facebook.com/*" ], 
     "run_at": "document_end" 
    } ], 
    "permissions": [ "contextMenus", "tabs", "http://*.facebook.com/*", "http://facebook.com/*", "https://*.facebook.com/*", "https://facebook.com/*" ] 
} 

和rabbi.js:

<script type="text/javascript"> 
$(document).ready(function(){ 

    alert("Thanks for visiting!"); 

}); 

</script> 

但是,当我进入Facebook的消息 “感谢您访问” 从来没有弹出。

+0

的jQuery是没有从我的分机另一种是不 – Tom 2012-01-31 22:53:28

回答

1

您正在注入脚本而不是html文档。所以你不需要<script type="text/javascript"></script>标签。

作为旁注:使用属性"run_at": "document_end"当DOM完全构建时,将注入脚本。事实上,这是在同一时间$(document).ready火灾。这意味着你不一定需要将你的代码封装在这个函数中。

+0

伟大的思想想象:) – Matthew 2012-01-31 22:54:03

+0

事实上,我刚刚看到亚伯拉罕也回答了他的评论 – Jan 2012-01-31 22:56:39

+0

是一分钟的第一,谢谢你两个 – Tom 2012-01-31 23:05:06

0

rabbi.js是一个JavaScript文件,因此您可以删除HTML。

$(document).ready(function(){ 
    alert("Thanks for visiting!"); 
}); 
+0

那没有帮助..仍然没有消息 – Tom 2012-01-31 22:41:52

+1

由于您在'document_end'处运行'content_script',因此您可能不需要'ready'触发器。试试'alert'行。 – abraham 2012-01-31 22:44:35

+0

哦,它的工作! – Tom 2012-01-31 22:45:18

1

你指定你应该"run_at": "document_end"运行脚本,这是DOM准备好后,事件已经解雇(这样你就不会需要它)