我正在开发一个chrome扩展,在此我使用内容脚本将inject.js注入到网页中。在inject.js中我有一个按钮,当我们点击这个按钮时,我将打开一个带有内部html文件的弹出窗口(window.open),现在我想将弹出窗口中的数据发送到注入的脚本
popup.html
<html>
<head>
</head>
<body>
<input id="mybutton" type="button" value="click" />
</body>
<script type="text/javascript" src="popup.js">
</script>
</html>
popup.js
window.onload = function(){
var button = document.getElementById('mybutton');
button.onclick = function() {
showAlert();
};
};
function showAlert(){
var evt=document.createEvent("CustomEvent");
evt.initCustomEvent("yourCustomEvent", true, true, "Data");
document.dispatchEvent(evt);
}
injected.js
$('.aic').append('<div id="sendButtonID" class="sendButtonCls" role="button" tabindex="0" gh="cm" style="-webkit-user-select: none;">Send Now</div></div>');
$('#sendButtonID').click(function(){
window.open(popupURL, '', 'height=400,width=500');
//console.log('chrome: ',chrome);
});
document.addEventListener('yourCustomEvent', function (e)
{
console.log('2');
console.log("received "+e);
});
答案 0 :(得分:1)
如果您将数据从弹出脚本传递到注入,您可以像这样传递,首先应该从弹出脚本传递到内容脚本然后从内容脚本传递到注入脚本