- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何替换任何页面,例如 http://google.com/到我的页面(我不想重定向)包括 <head>
?
我尝试过这个:
// Import the page-mod API
var pageMod = require("sdk/page-mod");
// Create a page-mod
// It will run a script whenever a ".io" URL is loaded
// The script replaces the page contents with a message
pageMod.PageMod({
include: "*.io",
contentScript: 'document.body.innerHTML = ' +
' "<h1>Page matches ruleset</h1>";'
});
但这并不能取代整个页面。我想更换head
也。我想在页面加载之前替换页面...
最佳答案
使用document.head.innerHTML
您可以引用html页面的标题,从而可以设置其中的内容。
还值得注意的是,page-mod API 可以采用 multiple arguments as an array of string literals ,以及能够从数据目录导入脚本。
最后,您可以通过设置 page-mod Option 将脚本设置为在页面加载之前运行。 contentScriptWhen
为 start
或 ready
值。
根据文档:
"start": Load content scripts immediately after the document element is inserted into the DOM, but before the DOM content itself has been loaded
"ready": Load content scripts once DOM content has been loaded, corresponding to the DOMContentLoaded event
"end": Load content scripts once all the content (DOM, JS, CSS, images) has been loaded, at the time the window.onload event fires
因此,在页面加载之前更改标题和正文的示例将类似于以下内容:
// Import the page-mod API
var pageMod = require("sdk/page-mod");
// Create a page-mod
// It will run a script whenever a ".org" URL is loaded
// The script replaces the page contents with a message
pageMod.PageMod({
include: "*.io",
contentScript: ['document.body.innerHTML = ' +
' "<h1>foo</h1>"',
'document.head.innerHTML = ' +
' "<style>h1 {color:blue;}</style>";'],
contentScriptWhen: "start"
});
还值得注意的是,当 contentScriptWhen
设置为 ready
时,此脚本可能对某些页面效果更好,否则更改可能不会应用到页面上的所有元素。
关于javascript - {jpm} 如何将任何页面替换为自己的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32440586/
如何替换任何页面,例如 http://google.com/到我的页面(我不想重定向)包括 ? 我尝试过这个: // Import the page-mod API var pageMod = re
我正在尝试编写我的第一个 Firefox 插件,但我似乎无法让 jpm 工作。我的操作系统是 Windows 7。我安装了 Node js,我正在尝试按照说明进行操作 here安装附加 sdk。但是,
jpm test 向控制台报告: .console.warn: reusetab: 10 warnings or errors were logged to the platform's nsICon
在this documentation有一个如何将数据/事件发送到选项卡的示例。这是我编辑的版本: success-window.js // "self" is a global object in
我需要有关 JPM 的帮助。我正在尝试使用 JPM 开发一个 firefox 扩展。我希望我的扩展程序在打开 firefox 时自动启动,但我无法在 onLoad 上添加事件我知道使用叠加层我可以做类
我正在运行 Ubuntu 16.04 和 Firefox 46.0。尝试在使用“jpm init” 创建的新附加组件(爬虫)上运行“jpm run” 时,我收到以下输出: JPM [info] Sta
我正在尝试将点击事件从面板脚本 (popup.js) 发送到内容脚本 (content.js),这是我试过的代码。所需的输出未在控制台上打印。 popup.html Clip popup.js fun
当我使用 jpm 时,我似乎无法显示我的插件图标. package.json中的相关项目是 "icon": "icon.png", "icon64": "icon64.png", 当我打开扩展程序时,
我已经阅读了 Mozilla 开发者网络“Getting Started (jpm)”的 Firefox 插件开发入门指南。 本指南建议,要查看我对插件代码所做的更改的效果,我需要: 关闭 Firef
当我在 Win7 命令提示符 > jpm 中运行执行 jpm 时,我收到此错误弹出窗口,并在命令行中出现“[err] 无法找到 Java VM”错误消息。 在此之前,我在 Blade CLI 上遇到配
在使用新的 SDK/JPM 开发 Firefox 插件时是否可以检测 URL 是否发生变化? 我想要检测的并不是 hashchange,而是 URL 的任何更改,例如 ajax 请求更改搜索词或类似的
我使用的是 Windows,我关注了 this tutorial和 this one这应该教我如何安装 JPM。我按照指示将 node.exe 安装到文件夹 C:\nodejs 中,但找不到任何 np
有问题signing an Add-On通过jpm : 命令 jpm -v sign --api-key 'user:xxxxxxxx:xxx' --api-secret xxxxxxxxxxxxxx
这是显示的堆栈跟踪: $ /tmp/node_modules/jpm-mobile/bin/jpm-mobile init /tmp/node_modules/jpm-mobile/bin/jpm-m
jpm版本为1.1.3 npm 版本为 2.15.8 节点版本为4.4.7 火狐版本为48.0 index.js 的内容: var self = require("sdk/self"); conso
我对 addon-sdk 还很陌生,并且遇到了一个对我来说无法解释的问题。到目前为止,我一直在使用 jpm run 来测试一切 - 并且一切都很好。现在,我即将完成我想要完成的任务,所以我想在“普通”
我正在启动一个 Firefox 插件,据我所知: jpm is the tool to manage a Firefox addon ; WebExtensions are a new way to
这是only SO question about listing drives吗? ?? 我在 Windows 上,我是插件开发的新手,我(目前)使用 Firefox Addon SDK 和 Node
当我运行我的扩展时 jpm -p myuser 我再也看不到任何 console.log 消息:这几乎不可能调试。 此处描述的相同问题:https://discourse.mozilla-commun
我正在尝试在 Android 平板电脑上运行简单的 Firefox 附加组件(在 PC 上运行良好)。我已执行描述的所有操作 here设置环境并尝试运行 jpm-mobile run --adb "C
我是一名优秀的程序员,十分优秀!