From dd45ebc51799f1fb23bde4510a1f9f40edd4e955 Mon Sep 17 00:00:00 2001 From: chiba Date: Tue, 20 May 2008 14:58:17 +0000 Subject: CurrentPageLoadイベントの追加とTabLeaveイベントが下記の条件で意図した動作をしないのでついでに修正しました。 * セッションからのタブ復活をした直後のタブ変更 (セッションからの復活ではTabSelectはおこらず。) * タブの削除(recentTabオブジェクトが破棄されてしまうため) git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@12079 d0d07461-0603-4401-acd4-de1884942a52 --- ex_autocmd.js | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'ex_autocmd.js') diff --git a/ex_autocmd.js b/ex_autocmd.js index 1b74f8d..65c7ac7 100644 --- a/ex_autocmd.js +++ b/ex_autocmd.js @@ -1,5 +1,5 @@ // Vimperator plugin: 'Ex Autocmd' -// Last Change: 14-Apr-2008. Jan 2008 +// Last Change: 20-May-2008. Jan 2008 // License: Creative Commons // Maintainer: Trapezoid - http://unsigned.g.hatena.ne.jp/Trapezoid // @@ -7,11 +7,23 @@ // Ex Events: // TabSelect // TabLeave +// CurrentPageLoad -var recentTab = null; +var recentTabURI = null; function tabSelect(e){ liberator.autocommands.trigger("TabSelect",gBrowser.selectedTab.linkedBrowser.contentWindow.location.href); - liberator.autocommands.trigger("TabLeave",recentTab && recentTab.linkedBrowser.contentWindow?recentTab.linkedBrowser.contentWindow.location.href:""); - recentTab = gBrowser.selectedTab; + liberator.autocommands.trigger("TabLeave",recentTabURI ? recentTabURI : ""); + recentTabURI = gBrowser.selectedTab.linkedBrowser.contentWindow.location.href; } gBrowser.tabContainer.addEventListener("TabSelect",tabSelect,false); + + +function currentPageLoad(e){ + var doc = e.originalTarget; + if (doc instanceof HTMLDocument && doc == gBrowser.contentDocument){ + liberator.autocommands.trigger("CurrentPageLoad",doc.documentURI); + recentTabURI = doc.documentURI; + } +} +gBrowser.addEventListener("load", currentPageLoad, true); + -- cgit v1.2.3