我正在构建一个Firefox附加组件。我已经将一个事件监听器附加到一个类的链接。在链接点击我需要将用户重定向到另一个页面(最好是单独的选项卡),并添加一些额外的参数作为查询字符串。我如何从插件中实现这一目标?我尝试设置location.href
,但它会像弹出窗口一样打开目标(我的意思是没有任何工具栏和菜单栏的窗口)。
这是在lck事件中触发的函数:
var myExtension = {
init: function() {
// The event can be DOMContentLoaded, pageshow, pagehide, load or unload.
if(gBrowser) gBrowser.addEventListener("DOMContentLoaded", this.onPageLoad, false);
},
onPageLoad: function(aEvent) {
var doc = aEvent.originalTarget; // doc is document that triggered the event
var win = doc.defaultView; // win is the window for the doc
// test desired conditions and do something
// if (doc.nodeName == "#document") return; // only documents
// if (win != win.top) return; //only top window.
// if (win.frameElement) return; // skip iframes/frames
// alert("page is loaded \n" +doc.location.href);
function toFb()
{
var Ele2=doc.getElementsByClassName('js-action-reply')[0].parentNode.parentNode.parentNode.parentNode.children[1];
doc.location.href="http://www.lendingstream.co.uk/?txt="+Ele2.innerHTML;
}
}
}
window.addEventListener("load", function load(event){
window.removeEventListener("load", load, false); //remove listener, no longer needed
myExtension.init();
},false);
答案 0 :(得分:1)
如果您需要在新标签页中打开页面,则应open a tab:
gBrowser.addTab("http://www.lendingstream.co.uk/?txt=" + encodeURIComponent(Ele2.innerHTML));
请注意,我使用encodeURIComponent()
function来确保参数已正确编码。
答案 1 :(得分:0)
你试过这个吗?
window.open('http://www.lendingstream.co.uk/?txt='+Ele2.innerHTML);
使用Chrome,IE或FF
时,可以使用Chrome中的扩展程序和任何常规页面