本文目录一览:
- 1、通过chrome插件注入的JS,利用window.onload事件触发删除某元素的命令,有什么办法能在网页渲染出来前?
- 2、Chrome浏览器,打开网页都被添加JS语言
- 3、如何在 Chrome 插件中访问任意网页中的 JavaScript 变量
通过chrome插件注入的JS,利用window.onload事件触发删除某元素的命令,有什么办法能在网页渲染出来前?
可以,
让元素先隐藏,等onload之后,删除,然后让元素显示
请采纳
Chrome浏览器,打开网页都被添加JS语言
这个是站长统计的一个工具,主要是统计访问量等,没有危害,站长用的,和普通访客没什么关系。
如何在 Chrome 插件中访问任意网页中的 JavaScript 变量
有这样需求,此 Chrome 插件需要监听任意网页中某个变量的变化,或是访问其中的值。但默认注入的 content.js 和原网页 Javascript 脚本并不运行在一个相同的环境中,无法相互访问。
搜索和自己尝试了如下的解决方法,不知是否还有更巧妙的方法?
content.js 没有办法访问到原网页,只要向 Dom 中再注入一个 inject.js 脚本就进入了原网页的作用域。如果能让 inject.js 与 content.js 或是直接与 background.js 通信即可。
接下来的通信问题的解决方法:
- 可以通过外部服务器中转,不过太麻烦了。
- inject.js 可以通过`chrome.runtime.sendMessage`直接向插件发起连接,但插件必须声明`externally_connectable`,并且安全起见不能使用*://*/*匹配所有域名。
- inject.js 可以注入 Dom 事件,由 content.js 捕获,可行。
- inject.js 可以写入 localStorage 或者其他共享的变量,由 content.js 轮询,不过如果变量发生了多次修改,每次的修改事件就很难及时发出。
- 可由 content.js 创建一个 SharedWorker 的函数,并将其转换为 Blob ,再使用`URL.createObjectURL`创建为共享链接存入 localStorage , inject.js 读取后此链接后,两个脚本同时连上同一个 SharedWorker ,由 worker 转发消息,可以很好双向通信。