在Firefox里面我们经常要对浏览器进行操作,比如说打开一个Tab或者关闭一个Tab,打开Tab也分两种,一种是在新窗口中打开,而另一种是在当前窗口打开。Tab是很多浏览器新的功能,当然这个新是相对的,因为在2-3年前,Tab还是没有的,主要还是通过IE6进行划分,姑且可以看IE6是解放前,而后面的一些版本可以看做是解放后。
在很多情况下,我们都需要响应自己的一些操作,而这些操作往往是伴随着打开网站的,比如在安装的时候提示用户是否安装成功,在卸载的时候提示用户卸载信息,在点击相应的按钮的时候提示用户相应的信息并打开网站,这些都需要用到Tab。其实Tab一点也不难,这里归纳一下一些Tab的基本操作。
当我们打开一个Tab的时候,最简单的方法是可以编写如下代码,这些代码可以直接写在代码中,不要管它什么错误提示。
// 使用addTab方法创建一个Tab
gBrowser.addTab(url);
getBrowser().addTab(url);
通过上面的代码,我们可以打开一个新的tab。但是这个tab并没有被我们所选中,这个时候我们就需要对gBrowser对象的选中属性进行设置,代码也不难。
gBrowser.addTab("http://www.jguoer.com/"); // 这个是任何版本都可以使用的
gBrowser.selectedTab = gBrowser.addTab("http://www.jguoer.com/");
在有些时候,我们打开一个新的tab的时候还需要对其中的dom进行操作,这个时候就需要等待新的tab里面的document对象执行完毕,否则可能会出现错误,代码可以编写如下。
var newTabBrowser = gBrowser.getBrowserForTab(gBrowser.addTab("http://www.jguoer.com/"));
alert(newTabBrowser.contentDocument.body.innerHTML); // 这个就要更好一些了
var newTabBrowser = gBrowser.getBrowserForTab(gBrowser.addTab("http://www.jguoer.com/"));
newTabBrowser.addEventListener("load",
function() { newTabBrowser.contentDocument.body.innerHTML = "<div>hello world</div>"; }, true);
上面的几种方法都是打开了新的窗口,然后激活新的窗口,但是有时候我们需要在当前tab更改url怎么办呢,这里gBrowser就没有作用了,我们必须要使用openUILink方法打开url到当前的tab。代码可以编写如下。
test: function(event) {
openUILink("http://www.jguoer.com", event, false, true);
}
}
上面的openUILink也可以直接写在代码里,不管IDE是否报错。上面的代码里面有一个event参数,如果我们只是单纯的打开一个页面不管是否有event参数的话,可以直接传递null即可,一样可以达到我们的效果。:)
在打开了tab之后,我们还需要对当前的tab进行关闭操作,关闭操作可以关闭当前的tab,代码不难。
另外我们还能够把当前的tab进行移动,例如向左移动和向右移动。
gBrowser.mTabContainer.advanceSelectedTab(1, true);
//向左移动
gBrowser.mTabContainer.advanceSelectedTab(-1, true);
所以,我们对tab的操作完全是可以自定义化,比如创建tab,关闭tab,移动tab之类的,都可以很轻松的完成,而且tab还提供了一些其他的方法,比如获取当前的tab的文档,可以写content.document获取当前的tab的document对象,这样就可以省去httprequest等操作了,也就更加方便了。
@Meta
拜托,我说的IP是IPhone好吧。。
我还是觉得这个模板好看一些。。
学习了。。这里是我的IP库。。
PS:你咋又吧模板换回去了?
[...] Firefox Add-on – 说说Tab [...]
又google到这里了 :)。顺便说一句, I hate JS。。。。。。。。。。。。。
我靠。找这篇文章找了好久~~~终于被我找到了