对于chrome扩展,若启用browser action属性,则有以下注意事项:
1. 所有的UI元素都写在popup.html中,css可以写在style中,也可以写在一个单独的css中引入。
2. popup.html中所用到的js必须是一个单独的js文件,将js代码写在popup.html的<script>标签中是无效的。不妨将js取名为popup.js,下面都使用该名称。
3. 可以引用第三方库。在popup.html中使用<script>标签将库的js引入即可。使用时,直接在popup.js中使用。注意引入的先后顺序。
例如在popup.html中:
<script src="lib/jquery-3.3.1.min.js" ></script>
<script src="js/popup.js" ></script>
在popup.js中就可以直接使用jquery。
4. 对于popup.html中元素的事件,必须在popup.js中使用代码动态绑定。例如一个按钮的click事件,在popup.html中添加元素:
<button οnclick="myTest()">测试按钮<button>
然后在popup.js中定义响应函数:
var myTest = function() {alert("测试");}
这样实际上是不行的,点击按钮,并不会弹出提示。
5. 若在popup.js中要与web页面通信,permissions需要activeTab权限,而非tabs权限。
6. 注入到web页面中的js和css,只会执行一次,且不会写入到页面中。
7. 每次点开browser action,都相当于将popup页面重新打开一次,因此其引入的js代码会全部重新执行。