你可能已经知道,链接会降低在线文本的可读性。这一点在像维基百科科学文章这样的页面上尤其明显,因为每隔一个术语都会被维基链接,因此是亮蓝色的。我正在尝试制作一个带切换按钮的Firefox插件,让链接看起来像是普通的文本。
似乎有一个Javascript单行程序可以将正文文本中链接的CSS样式更改为任何底层文本样式。我的假设正确吗?如果有,是什么?如果不是,最简单的方法是什么?
发布于 2014-02-15 08:51:38
应用以下样式应该可以:
a {
color: inherit !important;
text-decoration: inherit !important;
}
您可以将这些样式应用于所有网页using nsIStyleSheetService。如果您只想将它们应用于单个网页,则应将<style>
标签插入到该页面中。
发布于 2014-02-15 03:21:39
您应该能够通过几种方式完成此操作。不过,我不打算把这句话写成一句话。如果我不想加载或假定预先加载jQuery,我可能会从getElementByTagName开始。
var anchors = document.getElementsByTagName('a');
anchors = Array.prototype.slice.call(anchors);
anchors.forEach(function (anchor) {
anchor.style.textDecoration = 'none';
anchor.style.color = 'black'; // to taste
// et. al. You'll need to define these CSS rules.
});
您可能需要做一些检查,以确保它们确实在您的文章文本中,而不是来自导航菜单、侧边栏或页脚的锚点。
如果你真的可以使用一行程序,它可能是这样的:
Array.prototype.forEach.call(document.getElementsByTagName('a'), function (anchor) {/* CSS */});
发布于 2014-02-15 20:09:12
要像wlad推荐的那样使用nsIStyleSheetSercie,请这样做。只需在startUp上运行此命令,确保cssUri是一个全局变量,然后在关机时运行注销函数
var sss = Components.classes['@mozilla.org/content/style-sheet-service;1'].getService(Components.interfaces.nsIStyleSheetService);
var ios = Components.classes['@mozilla.org/network/io-service;1'].getService(Components.interfaces.nsIIOService);
var css = 'a {color: inherit !important; text-decoration: none !important; }';
//var cssEnc = 'data:text/css;base64,' + window.btoa(css);
var cssEnc = encodeURIComponent(css);
var cssUri = makeURI('data:text/css,' + cssEnc);
sss.loadAndRegisterSheet(cssUri, sss.USER_SHEET);
//when want to unregister run this:
//sss.unregisterSheet(cssUri, sss.USER_SHEET);
这将对所有站点应用样式表。我在下面的评论中询问了wlad如何使用@document使它成为网站规范
https://stackoverflow.com/questions/21792863
复制相似问题