gpt4 book ai didi

javascript - Bookmarklet 在 Firefox 中不起作用

转载 作者:行者123 更新时间:2023-11-30 13:29:58 26 4
gpt4 key购买 nike

我编写了一个脚本来更改设计糟糕的页面上的 CSS 元素。我一直在 Chrome 中测试它,现在它的功能齐全。我已将其放在网络上,现在将其用作小书签文本:

javascript:(function(){document.body.appendChild(document.createElement('script')).src='http://myexamplewebsite.com/files/adjustPage.js';})();

它在 Chrome 上完美运行,但在最新的 Firefox 或 IE 上无法运行。我查看了 Chrome 和 Firefox 的错误控制台,都没有提示任何问题。当我将代码放入错误控制台的“代码”字段并进行评估时,Firefox 也没有反应。

Firefox 确实会在底部的小状态栏中显示:“Read myexamplewebsite.com”,但除此之外别无其他。

这不是我在上面运行的小书签代码中的一个怪癖,因为我在同一台服务器上放置了一个“hello world”脚本并且它运行良好。

是否有更好的方法来解决 Firefox/IE 不喜欢我的脚本的哪些方面?

如果您有兴趣,我正在运行的代码就在这里。请原谅代码的丑陋,这是一个非常快速和肮脏的 hack:

var section = document.getElementsByClassName('cqGroupBox');
for(var i in section) {
var children = section[i].childNodes;

for(var j in children){
if(children[j].innerText == 'Detected on configuration') {
var style = section[i].getAttribute('style');
style += ' display:none;';
section[i].setAttribute('style', style);
break;
}
}
}

var tables = document.getElementsByTagName('table');
for(var i in tables) {
try{
var styleNode = tables[i].attributes.getNamedItem('style');
var style = styleNode.firstChild.nodeValue;

if(style == null) {
continue;
}

if(style.match('top: 434px; left: 120px;')
|| style.match('top: 461px; left: 120px;')
|| style.match('top: 434px; left: 456px;')
|| style.match('top: 461px; left: 456px;')){
style += ' display:none;';
tables[i].attributes.getNamedItem('style').firstChild.nodeValue = style;
}
} catch(err){continue;}
}


var labels = document.getElementsByTagName('label');
for(var i in labels) {
try{
var styleNode = labels[i].attributes.getNamedItem('style');
var style = styleNode.firstChild.nodeValue;

if(style == null) {
continue;
}

if(labels[i].innerText == 'OS'
|| labels[i].innerText == 'App. Server'
|| labels[i].innerText == 'DBMS'
|| labels[i].innerText == 'Web Server'){
style += ' display:none;';
labels[i].attributes.getNamedItem('style').firstChild.nodeValue = style;
}
} catch(err){continue;}
}

var divs = document.getElementsByTagName('div');
for(var i in divs) {
try {
var styleNode = divs[i].attributes.getNamedItem('style');
var style = styleNode.firstChild.nodeValue;

if(style == null) {
continue;
}

if(style.match('top: 291px; left: 23px;')){
style.replace('height: 109px;','');
divs[i].attributes.getNamedItem('style').firstChild.nodeValue = style;

innerDivs = divs[i].getElementsByTagName('div');
for(var j in innerDivs){
try {
innerStyle = innerDivs[j].attributes.getNamedItem('style').firstChild.nodeValue;
if(innerStyle.match('width: 665px; height: 109px;')){
innerStyle = innerStyle.replace('height: 109px;','');
innerStyle += ' font-size: 130%';
innerDivs[j].attributes.getNamedItem('style').firstChild.nodeValue = innerStyle;
}
} catch(err){continue;}
}
}
} catch(err){continue;}
}

最佳答案

innerText 是 Gecko 不支持的非标准属性(到目前为止;现在正在努力为其创建标准)。使用 textContent 是否可以解决问题?

关于javascript - Bookmarklet 在 Firefox 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7120630/

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