获取当前活动的输入字段.Chrome内容脚本.脚本注入
Get currently active input field. Chrome content script. Script injection
我想做的事情:
如何获取用户当前正在输入的输入字段的值?我正在通过Chrome内容脚本向访问的网站注入JavaScript。
我已经尝试过:
我尝试了alert($('.lastSelected').attr('id'));
和alert('document.activeElement.value: ' + document.activeElement.value);
,但没有成功。这两种方法都提供undefined
。
查看:focus
选择器。它将选择所有具有焦点的元素。
https://api.jquery.com/focus-selector/
如果用户正在键入,则表示正在进行三个键盘事件之一。keypress
、keydown
或keyup
。要获得聚焦元素的id,我们可以使用prop
方法。
$("input").on("keydown", function() {
alert($(":focus").prop("id"));
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="input1" />
<input type="text" id="input2" />
setInterval(function () {
var focus = document.querySelector(":focus");
document.querySelector("output").textContent = focus ? focus.id : "none";
}, 1000);
<input type=text id="a" />
<input type=text id="b" />
<output></output>
若并没有一段代码,要准确回答就有点复杂。你在我们的代码中得到了什么吗?由于您使用的是Chrome内容脚本,您可能会被CORS问题阻止。另一件需要考虑的事情是,您试图获取值的字段在HTMLDOM中,还是由另一段Javascript创建的?在Chrome内容脚本文档中,它提到您将无法访问来自其他JS代码的变量和对象:
执行环境内容脚本在一个称为孤立世界的特殊环境中执行。他们可以访问被注入页面的DOM,但不能访问页面创建的任何JavaScript变量或函数。它查看每个内容脚本,就好像在它运行的页面上没有其他JavaScript执行一样。反过来也是如此:在页面上运行的JavaScript无法调用任何函数或访问内容脚本定义的任何变量。https://developer.chrome.com/extensions/content_scripts
此外,它可能是一个拼写错误。。。所以你的一段代码可以补充你的问题。
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- java脚本在Chrome和其他浏览器中对LocaleTimeString的不同行为
- 如何让JS脚本在导航后继续运行(谷歌chrome控制台)
- 是否可以通过Chrome扩展内容脚本打开Chrome外部协议请求
- 在chrome web商店中打开时,是否有允许执行内容/后台脚本的解决方案
- Google Chrome扩展程序可以检测所有脚本何时加载完成吗
- 加载Chrome扩展中的脚本错误
- chrome扩展-内容脚本随需应变
- Chrome存储API无法使用内容脚本
- Chrome内容脚本制作cookie;chrome重新启动时,cookie会被删除.如何使其稳定
- Chrome扩展:加载窗口后执行脚本
- 如何动态添加或删除Chrome扩展、内容脚本、javascript文件
- 内容安全策略指令:;脚本src'self'blob:文件系统:chrome扩展资源:“;获取是否时
- Chrome审核:在外部CSS文件之间的头中发现了1个内联脚本块&”;
- 为内容脚本[Chrome扩展]获取本地存储价值的简单方法
- 拒绝加载脚本Chrome扩展
- InnerText在内容脚本Chrome扩展中返回未定义的内容
- 未在内容脚本Chrome扩展上触发事件
- 选项启用了内容脚本Chrome扩展,没有背景页
- 动态加载内容脚本(chrome扩展)