首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用Javascript更改CSS样式以使链接与普通文本相同?

如何使用Javascript更改CSS样式以使链接与普通文本相同?
EN

Stack Overflow用户
提问于 2014-02-15 11:05:01
回答 4查看 73关注 0票数 0

你可能已经知道,链接会降低在线文本的可读性。这一点在像维基百科科学文章这样的页面上尤其明显,因为每隔一个术语都会被维基链接,因此是亮蓝色的。我正在尝试制作一个带切换按钮的Firefox插件,让链接看起来像是普通的文本。

似乎有一个Javascript单行程序可以将正文文本中链接的CSS样式更改为任何底层文本样式。我的假设正确吗?如果有,是什么?如果不是,最简单的方法是什么?

EN

回答 4

Stack Overflow用户

发布于 2014-02-15 16:51:38

应用以下样式应该可以:

代码语言:javascript
代码运行次数:0
运行
复制
a {
  color: inherit !important;
  text-decoration: inherit !important;
}

您可以将这些样式应用于所有网页using nsIStyleSheetService。如果您只想将它们应用于单个网页,则应将<style>标签插入到该页面中。

票数 3
EN

Stack Overflow用户

发布于 2014-02-15 11:21:39

您应该能够通过几种方式完成此操作。不过,我不打算把这句话写成一句话。如果我不想加载或假定预先加载jQuery,我可能会从getElementByTagName开始。

代码语言:javascript
代码运行次数:0
运行
复制
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.
});

您可能需要做一些检查,以确保它们确实在您的文章文本中,而不是来自导航菜单、侧边栏或页脚的锚点。

如果你真的可以使用一行程序,它可能是这样的:

代码语言:javascript
代码运行次数:0
运行
复制
Array.prototype.forEach.call(document.getElementsByTagName('a'), function (anchor) {/* CSS */});
票数 1
EN

Stack Overflow用户

发布于 2014-02-16 04:09:12

要像wlad推荐的那样使用nsIStyleSheetSercie,请这样做。只需在startUp上运行此命令,确保cssUri是一个全局变量,然后在关机时运行注销函数

代码语言:javascript
代码运行次数:0
运行
复制
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使它成为网站规范

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21792863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档