Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome extension 识别信息上的多行。从关联菜单中选择文本_Google Chrome Extension - Fatal编程技术网

Google chrome extension 识别信息上的多行。从关联菜单中选择文本

Google chrome extension 识别信息上的多行。从关联菜单中选择文本,google-chrome-extension,Google Chrome Extension,每当用户选择页面上的某些文本时,“我的扩展”就会添加上下文菜单 然后,使用info.selectionText,每当用户从我的上下文菜单中选择一个项目时,我就在执行的函数上使用所选文本。(来自) 到目前为止,一切正常 现在,我从一个扩展用户那个里得到了一个很酷的请求,即每行选定的文本执行一次相同的函数。 例如,用户将选择3行文本,我的函数将被调用3次,每行调用一次,并使用相应的文本行 到目前为止,我还无法拆分info.selectionText,以便识别每一行。。。 info.selection

每当用户选择页面上的某些文本时,“我的扩展”就会添加上下文菜单

然后,使用info.selectionText,每当用户从我的上下文菜单中选择一个项目时,我就在执行的函数上使用所选文本。(来自)

到目前为止,一切正常

现在,我从一个扩展用户那个里得到了一个很酷的请求,即每行选定的文本执行一次相同的函数。 例如,用户将选择3行文本,我的函数将被调用3次,每行调用一次,并使用相应的文本行

到目前为止,我还无法拆分info.selectionText,以便识别每一行。。。 info.selectionText返回单行文本,但找不到拆分的方法

有人知道有没有办法吗?是否有用于拆分的“隐藏”字符

先谢谢你。。。如果您感兴趣,这里是扩展的链接


好的,因为OnClickData的selectionText只会是文本,所以使用这种方法您永远无法做到这一点

然后我要做的是在每个页面中插入一个内容脚本,并使用类似于以下示例的内容(受阅读本文的启发)

您仍然可以像现在一样在ClickData钩子上使用上下文菜单,但是当您收到它而不是读取selectionText时,您可以使用事件通知触发上下文脚本,然后使用x.Selector.getSelected()来读取所选内容。那会给你你想要的。使用关联菜单后,文本在扩展名中保持选中状态,因此您阅读所选文本时应该没有问题

if (!window.x) {
    x = {};
}

// https://stackoverflow.com/questions/5669448/get-selected-texts-html-in-div
x.Selector = {};
x.Selector.getSelected = function() {
    var html = "";
    if (typeof window.getSelection != "undefined") {
        var sel = window.getSelection();
        if (sel.rangeCount) {
            var container = document.createElement("div");
            for (var i = 0, len = sel.rangeCount; i < len; ++i) {
                container.appendChild(sel.getRangeAt(i).cloneContents());
            }
            html = container.innerHTML;
        }
    } else if (typeof document.selection != "undefined") {
        if (document.selection.type == "Text") {
            html = document.selection.createRange().htmlText;
        }
    }
    return html;
}

$(document).ready(function() {
    $(document).bind("mouseup", function() {
        var mytext = x.Selector.getSelected();
        alert(mytext);
        console.log(mytext);
    });
});​
if(!window.x){
x={};
}
// https://stackoverflow.com/questions/5669448/get-selected-texts-html-in-div
x、 选择器={};
x、 Selector.getSelected=函数(){
var html=“”;
if(typeof window.getSelection!=“未定义”){
var sel=window.getSelection();
如果(选择范围计数){
var container=document.createElement(“div”);
对于(变量i=0,len=sel.rangeCount;i

另请参见:

我还没有下载您的扩展,因此我对它的功能没有100%的了解。但是行/项是否在某种程度上是不同的,比如列表项、链接-是否有任何逻辑方法来确定中断?你能不能在你的文章中举几个“行”的例子,这将有助于更好地理解你到底想要实现什么。谢谢。嗨,Richard,我想我会寻找手动中断
或列出项目
  • 。假设页面上有一个电影标题列表,每行一个(用
  • 分隔),用户选择它们。。。我的扩展将对每一个电影标题执行特定的搜索(顺便说一句,我的扩展就是这样做的,它允许您在不同的搜索引擎上搜索)。