我安装了一个名为FireSSH的FF扩展,它基本上是Firefox中的一个终端。当它运行时,地址栏中的URL是 chrome://firessh/content/firessh.xul - 我想在将打开FireSSH的网页上创建一个链接,但到目前为止所有诱惑都失败了,例如我已经尝试过:
<script>
function myFunction()
{
window.open("chrome://firessh/content/firessh.xul");
}
</script>
<a href="#" onclick="myFunction()">firessh></a>
以及:
<a href="gBrowser.addTab("chrome://firessh/content/firessh.xul#account=Russell");">firessh</a>
简单地说:
<a href="chrome://firessh/content/firessh.xul#account=Russel">firessh</a>
任何帮助表示赞赏。
二.
收听所有页面,当您找到感兴趣的页面时,从您的插件中做,
var link = gBrowser.contentDocument.querySelector('#myLink');
link.addEventListener('click',openXulWindow,false);
//this openXulWindow opens a regular browser window
function openXulWindow() {
var sa = Cc["@mozilla.org/supports-array;1"].createInstance(Ci.nsISupportsArray);
var wuri = Cc["@mozilla.org/supports-string;1"].createInstance(Ci.nsISupportsString);
wuri.data = 'http://www.bing.com/';
let aCharset = 'UTF-8';
let charset = Cc["@mozilla.org/supports-string;1"].createInstance(Ci.nsISupportsString);
charset.data = "charset=" + aCharset;
var aAllowThirdPartyFixup = false;
var allowThirdPartyFixupSupports = Cc["@mozilla.org/supports-PRBool;1"].createInstance(Ci.nsISupportsPRBool);
allowThirdPartyFixupSupports.data = aAllowThirdPartyFixup;
sa.AppendElement(wuri);
sa.AppendElement(charset);
sa.AppendElement(allowThirdPartyFixupSupports);
let features = "chrome,dialog=no,all";
if (PrivateBrowsingUtils.permanentPrivateBrowsing) {
features += ",private";
} else {
features += ",non-private";
}
Services.ww.openWindow(null, 'chrome://browser/content/browser.xul', null, features, sa);
}
出于
安全考虑,不允许Web内容访问,链接和/或编写chrome:
内容脚本。 chrome:
以更高的安全级别运行,允许 Web 内容不受限制地调用chrome:
本质上是一个权限升级漏洞。