Firefox扩展页面modonAtttach很慢
Firefox Extension page-mod onAtttach is slow
我正在使用Firefox插件SDK构建一个扩展,以尽快捕获用户输入的URL。由于,我在tabs
API中找不到任何内容[找到了load
、activate
等],这将使我能够尽快访问我正在使用的page-mod
的URL。
我观察到,在重定向非常快的情况下,onAttach
无法捕获最初的几个URL,因为重定向非常快。
index.js
var pageMod = require("sdk/page-mod");
pageMod.PageMod({
include: ['*'],
contentScriptWhen: 'start',
contentScriptFile: data.url("mycontscript.js"),
attachTo: "top",
onAttach: function(worker) {
var tabUrl = worker.tab.url;
console.log('User typed ' + tabUrl);
... Interact with content script ...
}
...
});
我如何获取最初的URL,或者是否有另一个API可以帮助我实现扩展的实际意图。请注意,我不是在谈论与我的内容脚本的交互。console.log
在完成几次重定向后打印,基本上缺少最初的重定向。
PageMod或选项卡API不是为查看HTTP重定向而构建的,我猜这就是你所说的非常快速的重定向。这两个API在发出有关操作的事件之前都需要有效的页面加载,这样就不会将用户键入的值输入到URL栏中。
如果您想捕获在URL栏中键入的URL,您可以查看位置事件系统。Places是处理所有Firefox历史记录和书签的数据库,因此当在URL栏中输入新页面或通过链接导航到新页面时,历史记录事件将被触发。
这里有一些代码让你开始:
const { events } = require('sdk/places/events');
// https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsINavHistoryService#Transition_type_constants
const TRANSITION_REDIRECT_PERMANENT = 5;
const TRANSITION_REDIRECT_TEMPORARY = 6;
events.on('data', function({type, data}) {
if (type === 'history-visit') {
if (data.transitionType === TRANSITION_REDIRECT_PERMANENT ||
data.transitionType === TRANSITION_REDIRECT_TEMPORARY) {
console.log('redirect');
}
console.log(data.url);
}
})
/*
* contentScriptWhen: "start"
*
* "start": Load content scripts immediately after the document
* element is inserted into the DOM, but before the DOM content
* itself has been loaded
*/
/*
* use an empty HTMLElement as a way to prevent
* the DOM content from loading
*/
document.replaceChild(
document.createElement("html"), document.children[0]);
/*
* do whatever you want here
*/
/* then reload the current page from the server */
document.location.reload(true);
相关文章:
- 在javascript中模拟动画很慢
- 通过Javascript重复更新DOM后,网页变得很慢
- Firefox扩展页面modonAtttach很慢
- 击倒.js的速度很慢
- AngularJs在IE上很慢
- 反应选项卡导航很慢
- 当我选择 30 天图表时,我的 Highchart 图表真的很慢
- canvas 或 requestAnimationFrame 在移动设备中很慢
- 为什么Javascript在设置变量时很慢
- 动态.js在火狐浏览器上很慢
- 给许多DIV留出余量是很慢的
- jQuery 对 scrollTop() 的响应速度很慢
- iPad上的Javascript加载速度很慢
- Chrome扩展程序弹出窗口.html很慢,打开不快?1.89KB 页面为 5 秒
- 动态网页从数据库中检索数据的速度很慢
- 为什么使用 chrome 从本网站向上/向下滚动很慢
- 用户在火狐浏览器上的输入速度很慢,但不是 chrome
- 转到页面重新加载的特定选项卡很慢
- 为什么新阵列很慢
- 三.js数千个对象的速度很慢