Popup 和 Background 通信

popup 可以直接调用 background 中的 JS 方法,也可以直接访问 background 的 DOM :

background.js

console.log('我是后台js...');
function test()
{
	alert('我是background!');
}

popup.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{padding:0; margin:0; font-size:14px;}
.menu{width:300px; padding:15px;}
.menu-item{line-height:36px; cursor:pointer; opacity:0.92;}
.menu-item:hover{opacity:1;}
.h3{font-size:15px; line-height:50px;}
</style>
</head>
<body>
<div class="menu">
    <h3 class="h3">菜单页面</h3>
    <div class="menu-item" id="menu1">菜单1</div>
    <div class="menu-item">菜单1</div>
</div>
<script src="js/jquery.js"></script>
<script src="js/popup.js"></script>
</body>
</html>

popup.js

新版本插件机制要求 popup.html 内执行函数必须来自一个独立的 js 文件,不能是行内 js 脚本,所以单独创建一个 js 文件用于 popup.html。

// popup.js
$('#menu1').click(function(){
    // 获取 background
    var bg = chrome.extension.getBackgroundPage();
    bg.test(); // 访问bg的函数 
});