我有一个内容脚本,它计算用户查看页面的时间。为此,我将一个内容脚本注入每个页面,启动一个计时器,然后在onbeforeunload
触发事件时向附加组件发送一条消息。
但是,该消息似乎永远不会传递给后台脚本。
鉴于我的main.js
样子是这样的:
var pageMod = require('page-mod'),
self = require("self");
pageMod.PageMod({
include: "http://*",
contentScriptFile: [self.data.url('jquery.min.js'),
self.data.url('content.js')],
onAttach: function(worker) {
worker.port.on('pageView', function(request) {
console.log("Request received");
});
}
});
我可以main.js
使用以下代码发送消息没有问题。
self.port.emit('pageView', { visitTime: time });
但是,当我在用户离开页面时尝试这样做时遇到了问题。当我这样做时,永远不会收到该消息:
$(window).bind('onbeforeunload', function(e) {
self.port.emit('pageView', { visitTime: time });
// This should prevent the user from seeing a dialog.
return undefined;
});
我也试了听,beforeunload
还是不行。可能是什么问题呢?