将<style> CSS脚本创建为Greasemonkey脚本</style>

时间:2014-03-13 16:58:57

标签: html css greasemonkey

我有以下CSS代码:

<style>
.crumbContTop > table:nth-child(1) > tbody:nth-child(1) > tr:nth-child(1) > th:nth-child(1)     {
    position: fixed;
    bottom: 0px;
    width: 98%;
}

#navMenuContainer {
    position: fixed;
    top: 5px;
    z-index: 2;
}

#navBar > div:nth-child(1) {
    position: fixed;
    top: 5px;
    z-index: 1;
    right:0px;
}

#navBar {
    position: fixed;
    top: 0px;
    z-index: 1;
    width:4000px;
    height:15px;
}

td.cell1 {
    position:fixed;
    bottom:0px;
    z-index:1;
    padding:20px;
    right:0px;
    opacity:0.7;
    visibility:visible !important;
}

#main-header {
    position:fixed;
    top:0px !important;
    z-index:1 !important;
    width:100%;
}
</style>

我只想将其转换为Greasemonkey脚本,基本上这可以修复位于屏幕顶部和底部的导航条的位置。 问题是,如果说他正在期待一个标识符,而不是&#34; &LT; &#34;

任何帮助?

感谢。

(还有一个问题,我如何使位置保持静态,但当对象在屏幕外时它会被修复?)

1 个答案:

答案 0 :(得分:1)

编辑:

正如Hellion指出的那样,Greasemonkey用GM_addStyle覆盖了这个问题。来自维基:

GM_addStyle("body { color: white; } /* CSS etc, etc */");

Greasemonkey只是JS,所以你不能在Greasemonkey脚本中直接使用CSS;你需要以某种方式将它注入页面。

原始答案:

http://www.techradar.com/us/news/internet/the-beginner-s-guide-to-greasemonkey-scripting-598247/2上展示,您可以添加一个函数来向页面添加样式表,然后将CSS存储在字符串中:

function addCss(cssString) {
    var head = document.getElementsByTagName('head')[0];
    var newCss = document.createElement('style');
    newCss.type = "text/css";
    newCss.innerHTML = cssString;
    head.appendChild(newCss);
}

在您的脚本中的某个时刻,在您当前的CSS上调用addCss

addCss("#mainHeader { position:fixed;} /* more CSS here */");