gpt4 book ai didi

javascript - {jpm} 如何将任何页面替换为自己的?

转载 作者:行者123 更新时间:2023-12-03 08:57:13 27 4
gpt4 key购买 nike

如何替换任何页面,例如 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 将脚本设置为在页面加载之前运行。 contentScriptWhenstartready 值。

根据文档:

"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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com