JS书签小程序。增加减少网站的字体大小

问题描述 投票:0回答:1

我使用的是来自 此处 来放大网站。


var p=document.getElementsByTagName('*');

for(i=0;i<p.length;i++) {
  if(p[i].style.fontSize){
    var s=parseInt(p[i].style.fontSize.replace("px",""));
}
else {
  var s=12;
}

s+=2;
p[i].style.fontSize=s+"px"

但最近这个功能在我的Chrome浏览器上停止工作了(Version 81.0.4044.138 (Official Build) (64-bit)). 我很好奇为什么,以及任何可行的替代方案。

ٍ解释 "停止工作"。在使用它之后,页面变成空白,有时显示 "14px"。enter image description here

javascript font-size bookmarklet
1个回答
1
投票

本文来自2ality

用undefined结束。如果你不返回(或用!)undefined,结果就会替换当前的网页,[注意:Webkit浏览器如Chrome和Safari不会替换网页,只有非Webkit浏览器如Firefox才会。注意:Webkit 浏览器(如 Chrome 和 Safari)从不替换网页,只有非 Webkit 浏览器(如 Firefox)才会这样做。

但Chrome浏览器已经改变了这种行为。

现在,Chrome 浏览器会运行一段代码,比如

if (typeof bookmark_reslt === "string") {
  document.body.innerHTML = bookmark_reslt
}

一个最小的可复制的书签示例是 javascript: "14px"

最简单的解决方法是添加 undefined 在脚本的最后。


火狐浏览器会执行一个类似于 document.body.innerHTML = String(bookmark_reslt)

// examples to see how `toString` affects Bookmarklets in Firefox
javascript: a = {}; a; // <body>[object Object]</body>
javascript: a = {}; a.toString = ()=> 2; a; // <body>2</body>
© www.soinside.com 2019 - 2024. All rights reserved.