顶级商业网站上的getSelection失败,如何取消阻止?

时间:2016-06-15 18:38:36

标签: google-chrome-extension

我制作了Chrome扩展程序以方便网页内容捕获(只需将内容复制到我服务器上的数据库中,然后通过简单的选择' +'点击')进行进一步处理,但主要的商业网站似乎阻止了getSelection()函数。它只适用于我自己的网站和维基百科。它们如何阻止它?是否可以取消阻止?

popup.js中的示例代码来测试这个问题非常简单。单击扩展图标时执行:

window.addEventListener("load",init);

function init() {

    chrome.tabs.query({active:true, windowId: chrome.windows.WINDOW_ID_CURRENT},
        function(tab) {
            chrome.tabs.sendMessage(tab[0].id, {method: "getSelection"},
                function(response){
                   chrome.extension.getBackgroundPage().console.log(response);
               }
            );
        }
    );    
}

听众代码是:

[niko@dev1 ext]$ cat selection.js 
chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
  if (request.method == "getSelection") {
    sendResponse({data: window.getSelection().toString()});
  }else {
    sendResponse({}); 
  }
});
[niko@dev1 ext]$ 

当我使用维基百科时,我在控制台中选择没有任何问题:

Object {data: "nal networks of newspapers. The Democratic party w…rs, Evangelical Protestants, and social reformers"}

但是,当我使用一些顶级新闻网站时,我什么也得不到:

Object {data: ""}

这些网站如何阻止getSelection()方法?

0 个答案:

没有答案