我从this question得到了下面的代码,这个脚本是用来在带有Chrome扩展的Google tasks上的iframe[src="about:blank"]
中改变CSS。
// ==UserScript==
// @name _Style iframe with src="about:blank"
// @match https://mail.google.com/tasks/canvas
// ==/UserScript==
var targetFrame = document.querySelector("iframe[src='about:blank']");
if (targetFrame) {
addStyleToFrame(
`* {color: red !important}`, targetFrame
);
function addStyleToFrame(cssStr, frmNode) {
var D = frmNode.contentDocument;
var newNode = D.createElement('style');
newNode.textContent = cssStr;
var targ = D.getElementsByTagName('head')[0] || D.body || D.documentElement;
targ.appendChild(newNode);
}
}
这段代码有时会将字体颜色改为红色,但有时却不会,如何让这段代码100%地工作?
图2.修改了第一个代码以等待加载,但仍然不稳定,就像这样(我只是用下面的第二个代码按F5
和shift + F5
来刷新页面。)
// ==UserScript==
// @name _Style iframe with src="about:blank"
// @match https://mail.google.com/tasks/canvas
// ==/UserScript==
var targetFrame = document.querySelector("iframe[src='about:blank']");
document.querySelector("iframe[src='about:blank']").onload = function() {
if (targetFrame) {
addStyleToFrame(
`* {color: red !important}`, targetFrame
);
function addStyleToFrame(cssStr, frmNode) {
var D = frmNode.contentDocument;
var newNode = D.createElement('style');
newNode.textContent = cssStr;
var targ = D.getElementsByTagName('head')[0] || D.body || D.documentElement;
targ.appendChild(newNode);
}
}}
https://stackoverflow.com/questions/51798363
复制相似问题