|
阅读:49253回复:4
关于chrome协议
利用scriptish给页面注入css,这个css如果用file协议能找到,但是如果利用chrome协议找不到文件。
请问如何将chrome协议的路径转换成file路径。 或者其他什么方式 var link = document.createElement('link');
link.setAttribute('rel','stylesheet');
link.setAttribute('href','[color=#BF0040]file:///xxx.css[/color]');
link.setAttribute('type','text/css');
document.body.appendChild(link); |
|
|
1楼#
发布于:2012-04-10 16:58
你这是什么情况?
能用url的地方一定可以用chrome,反之不然 例如jar:file:///XXXX/Firefox/omni.ja!/chrome/ 尝试用如下方法访问: function getContents(aURL){
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(aURL,null,null);
var input=channel.open();
scriptableStream.init(input);
var str=scriptableStream.read(input.available());
scriptableStream.close();
input.close();
return str;
}
try{
alert(getContents("chrome://browser/content/browser.css"));
alert(getContents("http://www.mozillazine.org/"));
}catch(e){alert(e)}via mozillazine |
|
|
|
2楼#
发布于:2012-04-10 16:58
白左:你这是什么情况? 你这种方式是利用组件功能,这个需要用户安全认证吧。 有没有其他更好的方式。我试一下这种是否可行。 先谢谢您了 |
|
|
3楼#
发布于:2012-04-10 16:58
刚试了一下,你那是取的文件内容,我想取的是文件的路径
|
|
|
4楼#
发布于:2012-04-10 16:58
你是说,可以用chrome://xxxx的地方,把他转换为file://xxxx的吧
这就不太清楚了…… 显然fx内部就有这个转换,你可以去找找源码,或者去MDN看看fx本身是怎么实现的…… |
|
|