Google chrome extension 在离开某个页面之前,如何在该页面上运行chrome扩展内容脚本?

Google chrome extension 在离开某个页面之前,如何在该页面上运行chrome扩展内容脚本?,google-chrome-extension,Google Chrome Extension,我试图在离开页面时通过内容脚本获得用户对页面的选择 有什么想法吗?谢谢 我调查了一下你想做什么,我发现: 您可以检测用户何时希望使用以下代码导航: window.onbeforeunload = function() { return "Are you sure you want to navigate away?"; } 您可以通过以下方式获得用户的选择: var getSelected = function(){ var t = ''; if(window.getSelecti

我试图在离开页面时通过内容脚本获得用户对页面的选择


有什么想法吗?谢谢

我调查了一下你想做什么,我发现:

您可以检测用户何时希望使用以下代码导航:

window.onbeforeunload = function() {
  return "Are you sure you want to navigate away?";
}
您可以通过以下方式获得用户的选择:

var getSelected = function(){
  var t = '';
  if(window.getSelection){
    t = window.getSelection();
  }else if(document.getSelection){
    t = document.getSelection();
  }else if(document.selection){
    t = document.selection.createRange().text;
  }
  return t;
}
现在,如果我们将这两个函数合并在一起工作,我们可以制作如下内容:

window.onbeforeunload = function() {
  return getSelected();
}
var receiveMessage= function() {
                    chrome.extension.onRequest.addListener(function (request, sender, sendResponse) {
                        //Do something
                   });
                }
所有这些代码都应该在你的内容脚本中,我不知道你为什么要获得选择,但如果是为了保存在数据库中或进行进一步处理,你可以将用户的选择发送到background.html页面我不知道你是否熟悉它们,但这里有一个链接, 要实现这一点,您可以使用chrome扩展的消息传递api:

我已经用了3周的时间来研究这个问题,这是非常简单的,只要确保您清楚地了解扩展的架构是如何配置的,因为这样可以节省您计算数据流的大量时间

这将引导我们在内容脚本上找到与此类似的代码:

window.onbeforeunload = function() {
  chrome.extension.sendRequest({userSelection:getSelected()});
}
您只需在您的背景页面中聆听以下请求:

window.onbeforeunload = function() {
  return getSelected();
}
var receiveMessage= function() {
                    chrome.extension.onRequest.addListener(function (request, sender, sendResponse) {
                        //Do something
                   });
                }

我调查了一下你想做什么,我发现:

您可以检测用户何时希望使用以下代码导航:

window.onbeforeunload = function() {
  return "Are you sure you want to navigate away?";
}
您可以通过以下方式获得用户的选择:

var getSelected = function(){
  var t = '';
  if(window.getSelection){
    t = window.getSelection();
  }else if(document.getSelection){
    t = document.getSelection();
  }else if(document.selection){
    t = document.selection.createRange().text;
  }
  return t;
}
现在,如果我们将这两个函数合并在一起工作,我们可以制作如下内容:

window.onbeforeunload = function() {
  return getSelected();
}
var receiveMessage= function() {
                    chrome.extension.onRequest.addListener(function (request, sender, sendResponse) {
                        //Do something
                   });
                }
所有这些代码都应该在你的内容脚本中,我不知道你为什么要获得选择,但如果是为了保存在数据库中或进行进一步处理,你可以将用户的选择发送到background.html页面我不知道你是否熟悉它们,但这里有一个链接, 要实现这一点,您可以使用chrome扩展的消息传递api:

我已经用了3周的时间来研究这个问题,这是非常简单的,只要确保您清楚地了解扩展的架构是如何配置的,因为这样可以节省您计算数据流的大量时间

这将引导我们在内容脚本上找到与此类似的代码:

window.onbeforeunload = function() {
  chrome.extension.sendRequest({userSelection:getSelected()});
}
您只需在您的背景页面中聆听以下请求:

window.onbeforeunload = function() {
  return getSelected();
}
var receiveMessage= function() {
                    chrome.extension.onRequest.addListener(function (request, sender, sendResponse) {
                        //Do something
                   });
                }

你的问题我不太清楚,你对用户选择的意思是什么?。你能再解释一下你想完成什么吗?嘿,西瑞德,对不起,我没说清楚。我指的是用户在页面上用鼠标选择/突出显示的文本。通常我只会执行一个内容脚本来执行此操作,但在这种情况下,我尝试在“从页面导航到新页面”事件中执行此操作。这在Chrome中是不存在的。你的问题对我来说并不完全清楚,你对用户选择的意思是什么?。你能再解释一下你想完成什么吗?嘿,西瑞德,对不起,我没说清楚。我指的是用户在页面上用鼠标选择/突出显示的文本。通常我只会执行一个内容脚本来执行此操作,但在这种情况下,我尝试在“从页面导航到新页面”事件中执行此操作。这在Chrome中是不存在的谢谢Syred。。。onbeforeunload是我要找的!谢谢你,西瑞德。。。onbeforeunload是我要找的!