TOGOUTECH

javascript - Firefox 扩展 : Get selected text

coder 2024-05-16 原文

我正在开发一个简单的 Firefox 扩展,我想获取选定的文本。我试过这个:

var WordCount = {
    /* ... */
    changeSelected: function() {
        var selectedText = this.getSelection();
        var words = this.countWords(selectedText);
        this.changeStatus(words, " selected");
        //alert(selectedText);
    },
    getSelection: function(e) {
        var focused_window = document.commandDispatcher.focusedWindow;
        var sel_text = focused_window.getSelection();
        return sel_text.toString();    
    }
}
window.addEventListener("select", function(e) { WordCount.changeSelected(); }, false);

问题是,我没有通过 document.commandDispatcher.focusedWindow.getSelection() 获得选择,我也不知道为什么 :(

最佳答案

你的问题是 document.commandDispatcher.focusedWindow 将指向一个 chrome 窗口,我怀疑你实际上想要一个内容窗口。尝试将其替换为 content.getSelection()

关于javascript - Firefox 扩展 : Get selected text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1138296/

有关javascript - Firefox 扩展 : Get selected text的更多相关文章

  1. javascript - Chrome 扩展程序 - 仅在单击按钮时运行内容脚本 - 2

    我已经看过了,但我似乎无法找到并回答这个问题(好吧,一个对我有用的问题)。我制作了一个Chrome扩展程序,它应该只在单击图标时运行我的内容脚本中的代码,但它总是在页面加载后立即运行。有没有办法防止这种情况发生?我可以为run_at输入的所有可能字符串都不能真正满足此要求。这是两个脚本中的示例代码:内容脚本:functionrunIt(){console.log('working');}runIt();背景.js:chrome.browserAction.onClicked.addListener(function(activeTab){chrome.tabs.executeScrip

  2. javascript - 访问 chrome 扩展中当前选项卡的所有窗口变量 - 2

    这个问题在这里已经有了答案:Accessvariablesandfunctionsdefinedinpagecontextusingacontentscript(6个答案)关闭7年前。任何人都可以发布用于访问chrome扩展中的窗口变量的代码。单击chrome扩展按钮时,我需要访问窗口变量。我正在获取窗口对象,但没有加载所有变量。我知道我们可以通过注入(inject)脚本来创建它。但我不知道如何实现它。目前我正在尝试使用以下代码来获取当前事件选项卡的页面源。chrome.tabs.executeScript({code:"document.getElementsByTagName('h

  3. javascript - Javascript "apply"函数在 window.external 扩展对象中不存在 - 2

    我在IE8(也可能是任何IE版本)上使用javascript扩展(又名window.external)来公开某些功能。我正在尝试调用apply函数,该函数(根据here应该是)在window.external对象的每个JS函数中原生嵌入函数,但浏览器不断抛出异常,表明该函数不存在apply函数。例如,这段代码有效:functiononDataReceived(url,success,status,data,errorMessage){alert(onDataReceived);}functioninnerTest(){alert(arguments[0]+","+arguments[1

  4. javascript - 什么是最好的 javascript 数组库/实用程序/扩展? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我一直在使用dojo数组实用程序,但我对有限的功能并不完全满意。是否有任何真正广泛且编写良好的javascript数组实用程序库或扩展?我希望在范围上与C#API中的集合扩展类似。

  5. javascript - 更改 sails.js EJS View 以使用 .html 扩展名而不是 .ejs 扩展名? - 2

    是否可以将sails.js应用配置为使用.html扩展而不是.ejs(但仍使用ejsView引擎)?sailsnewapp创建./views/home/index.ejs和./views/layout.ejs。我想将扩展名更改为.html,但保持其他一切以相同的方式工作。即:我现在有./views/home/index.html和./views/layout.html,主页仍然会被注入(inject)布局页面,按照正常情况。请问我该如何配置? 最佳答案 在你的config/views.js中:engine:{ext:'html',f

  6. javascript - Chrome 扩展 : How to get user name? - 2

    我正在创建一个谷歌浏览器扩展程序。对于某些功能,我需要用户的系统登录名(无密码)。通过使用JavaScript,这是不可能的。有人建议NPAPI,但我对此一无所知,所以我放弃了。接下来我将尝试在Chrome浏览器中获取用户名。但仍然没有成功。我尝试使用类似的东西:varcurrentUser;varxhr=newXMLHttpRequest();xhr.onreadystatechange=function(data){if(xhr.readyState==1){currentUser=null;if(xhr.status==200){varre=newRegExp(/[\s]*([^

  7. javascript - Chrome 扩展程序 identity.email 为空 - 2

    我正在尝试通过chromeidentityapi获取用户的电子邮件和ID。我在做这个chrome.identity.getProfileUserInfo(function(userinfo){console.log("userinfo",userinfo);email=userinfo.email;uniqueId=userinfo.id;});我已指定identity权限并在范围内添加了https://www.googleapis.com/auth/userinfo.email。用户通过chrome.identity.getAuthToken登录,我有访问token。console.

  8. javascript - 用 React 编写的 Chrome 扩展中的路由 - 2

    我想在我的Chrome扩展程序中添加2个页面。例如:第一个(默认)页面包含用户列表,第二个页面包含针对该用户的操作。我想通过点击用户来显示第二页(在我的例子中是ClickableListItem)。我使用React和React路由器。这是我拥有的组件:classResentsextendsReact.Component{constructor(props){super(props);this.handleOnClick=this.handleOnClick.bind(this);}handleOnClick(){console.log('navigatetonextpage');con

  9. javascript - jQuery.ajax() 在 Chrome 扩展中将 POST 请求作为 GET 发送 - 2

    我正在构建一个小型Chrome扩展程序,它必须通过POSThttp请求将消息发送到我公司网络中的服务器,并且我正在使用jQuery1.4.1来加速javascript部分的开发。我有这个代码来发送请求:functionsend(){$.ajax({url:"http://mycompany.com/update",method:"POST",data:{status:"sometest",in_reply_to_status_id:"anId"},success:function(data,textStatus){console.log("success");console.log(d

  10. javascript - 在全局范围内扩展 jQuery ajax 的成功 - 2

    我正在尝试创建一个在ajax成功回调之前被调用的全局处理程序。我用我的应用程序进行了很多ajax调用,如果这是一个错误,我会返回一个特定的结构,所以我需要在成功运行之前运行一些东西来检查响应数据,看看它是否包含像1/这样的错误代码位0示例响应{"code":"0","message":"yourcodeisbroken"}或{"code":"1","data":"returnsomedata"}我无法在开箱即用的jQuery中找到一种方法来执行此操作,查看了预过滤器、ajaxSetup和其他可用方法,但它们并没有完全实现,我可以想出的办法是破解ajax方法本身一点:varoFn=$.a

随机推荐