如何注入位于/皮肤上的CSS? [英] How to inject CSS located on /skin?

查看:139
本文介绍了如何注入位于/皮肤上的CSS?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



它位于 chrome:// orkutmanager /skin/om.css ,手动显示正确的文件内容。

我已经试过这个,但是它不工作。 ..我错过了什么,或者是不可能的?

解决方案

我找到了这个解决方法。读取文件,然后注入它的内容...

pre $ $ $ $ $ $ $
$ b $ ioService = Components.classes [@ mozilla.org/network/io-service;1]
.getService(Components.interfaces.nsIIOService);
var scriptableStream =组件
.classes [@ mozilla.org/scriptableinputstream;1]
.getService(Components.interfaces.nsIScriptableInputStream);

var channel = ioService.newChannel(file,null,null);
var input = channel.open();
scriptableStream.init(input);
var str = scriptableStream.read(input.available());
scriptableStream.close();
input.close();
return str;


var style = $(< style type ='text / css'/>);
style.html(Read(chrome://orkutmanager/skin/om.css));
$(head)。append(style);


I want to inject a css file located on the skin folder in a browser page.

It is located on chrome://orkutmanager/skin/om.css, accessing manually show the file contents correctly.

I've tried this, but it's not working... What am I missing, or is it impossible?

解决方案

I found this workaround. Read the file then inject it's contents...

function Read(file)
{
    var ioService=Components.classes["@mozilla.org/network/io-service;1"]
        .getService(Components.interfaces.nsIIOService);
    var scriptableStream=Components
        .classes["@mozilla.org/scriptableinputstream;1"]
        .getService(Components.interfaces.nsIScriptableInputStream);

    var channel=ioService.newChannel(file,null,null);
    var input=channel.open();
    scriptableStream.init(input);
    var str=scriptableStream.read(input.available());
    scriptableStream.close();
    input.close();
    return str;
}

var style = $("<style type='text/css' />");
style.html(Read("chrome://orkutmanager/skin/om.css"));
$("head").append(style);

这篇关于如何注入位于/皮肤上的CSS?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆