diff options
author | suVene | 2008-12-15 20:05:55 +0000 |
---|---|---|
committer | suVene | 2008-12-15 20:05:55 +0000 |
commit | c01b41bc966cec5cf63114305c26dedb5e454f68 (patch) | |
tree | 94a45e70939dfd150e8f566754b497ba15da9fb6 /_libly.js | |
parent | dd20d53f5765bdc0d0cacc750007267c89073f4f (diff) | |
download | vimperator-plugins-c01b41bc966cec5cf63114305c26dedb5e454f68.tar.bz2 |
* add $U.getFirstNodeFromXPath(xpath, context)
* PLUGIN_INFO 整形.
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@26826 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to '_libly.js')
-rw-r--r-- | _libly.js | 86 |
1 files changed, 47 insertions, 39 deletions
@@ -5,7 +5,7 @@ var PLUGIN_INFO = <description>vimperator plugins library?</description> <description lang="ja">適当なライブラリっぽいものたち。</description> <author mail="suvene@zeromemory.info" homepage="http://zeromemory.sblo.jp/">suVene</author> - <version>0.1.9</version> + <version>0.1.10</version> <minVersion>1.2</minVersion> <maxVersion>2.0pre</maxVersion> <detail><![CDATA[ @@ -16,64 +16,66 @@ var PLUGIN_INFO = == Logger == getLogger(prefix): - log(msg, level), echo(msg, flg), echoerr(msg) - のメソッドを持つ logger インスタンスを取得します。 - ログの書式は prefix + ': ' + yyyy/MM/dd + msg となります。 + log(msg, level), echo(msg, flg), echoerr(msg) + のメソッドを持つ logger インスタンスを取得します。 + ログの書式は prefix + ': ' + yyyy/MM/dd + msg となります。 == Object Utility == extend(dst, src): - オブジェクトを拡張します。 + オブジェクトを拡張します。 A(iterable): - オブジェクトを配列にします。 + オブジェクトを配列にします。 bind(obj, func): - func に obj を bind します。 - func内からは this で obj が参照できるようになります。 + func に obj を bind します。 + func内からは this で obj が参照できるようになります。 eval(text): - Sandbox による、window.eval を極力利用するようにします。 - Snadbox が利用できない場合は、unsafe な window の eval が直接利用されます。 + Sandbox による、window.eval を極力利用するようにします。 + Snadbox が利用できない場合は、unsafe な window の eval が直接利用されます。 evalJson(str, toRemove): - str を decode します。 - toRemove が true の場合、文字列の前後を1文字削除します。 - "(key:value)" 形式の場合などに true を指定して下さい。 + str を decode します。 + toRemove が true の場合、文字列の前後を1文字削除します。 + "(key:value)" 形式の場合などに true を指定して下さい。 deteFormat(dtm, fmt): - Date型インスタンスを、指定されたフォーマットで文字列に変換します。 - fmt を省略した場合、"%y/%M/%d %h:%m:%s" となります。 + Date型インスタンスを、指定されたフォーマットで文字列に変換します。 + fmt を省略した場合、"%y/%M/%d %h:%m:%s" となります。 == Browser == getSelectedString: - window の選択文字列を返却します。 + window の選択文字列を返却します。 getUserAndPassword(hostname, formSubmitURL, username): - login-manager から [username, password] を取得します。 - 引数の username が省略された場合、検索された 1件目を返却します。 - データが存在しない場合は、null を返却します。 + login-manager から [username, password] を取得します。 + 引数の username が省略された場合、検索された 1件目を返却します。 + データが存在しない場合は、null を返却します。 == System == readDirectory(path, fileter, func): - path で指定したディレクトリから、filter で指定された正規表現に match する場合、 - func をファイル名を引数にコールバックします。 - filter は Function を指定することも可能です。 + path で指定したディレクトリから、filter で指定された正規表現に match する場合、 + func をファイル名を引数にコールバックします。 + filter は Function を指定することも可能です。 == HTML, XML, DOM, E4X == pathToURL(path): - 相対パスを絶対パスに変換します。 + 相対パスを絶対パスに変換します。 getHTMLFragment(html): - <html>※1</html> - ※1 の文字列を取得します。 + <html>※1</html> + ※1 の文字列を取得します。 stripTags(str, tags): - str から tags で指定されたタグを取り除いて返却します。 - tags は文字列、または配列で指定して下さい。 + str から tags で指定されたタグを取り除いて返却します。 + tags は文字列、または配列で指定して下さい。 createHTMLDocument(str): - 引数 str より、HTMLFragment を作成します。 -getNodesFromXPath(xpath, doc, callback, obj): - xpath を評価し snapshot の配列を返却します。 + 引数 str より、HTMLFragment を作成します。 +getFirstNodeFromXPath(xpath, context): + xpath を評価しオブジェクトをを返却します。 +getNodesFromXPath(xpath, context, callback, obj): + xpath を評価し snapshot の配列を返却します。 xmlSerialize(xml): - xml を文字列化します。 + xml を文字列化します。 xmlToDom(node, doc, nodes): - for vimperator1.2. - @see vimperator2.0pre util. + for vimperator1.2. + @see vimperator2.0pre util. getElementPosition(elem): - elem の offset を返却します。 - {top: 0, left: 0} + elem の offset を返却します。 + return {top: 0, left: 0} ]]></detail> </VimperatorPlugin>; //}}} @@ -236,11 +238,17 @@ libly.$U = {//{{{ htmlFragment.documentElement.appendChild(htmlFragment.importNode(range.createContextualFragment(str), true)); return htmlFragment; }, - getNodesFromXPath: function(xpath, doc, callback, obj) { + getFirstNodeFromXPath: function(xpath, context) { + if (!xpath) return null; + context = context || window.content.document; + var result = (context.ownerDocument || context).evaluate(xpath, context, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null); + return result.singleNodeValue ? result.singleNodeValue : null; + }, + getNodesFromXPath: function(xpath, context, callback, obj) { var ret = []; - if (!xpath || !doc) return ret; - var node = doc || window.content.document; - var nodesSnapshot = (node.ownerDocument || node).evaluate(xpath, node, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); + if (!xpath) return ret; + context = context || window.content.document; + var nodesSnapshot = (context.ownerDocument || context).evaluate(xpath, context, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); for (let i = 0, l = nodesSnapshot.snapshotLength; i < l; i++) { if (typeof callback == 'function') callback.call(obj, nodesSnapshot.snapshotItem(i), i); ret.push(nodesSnapshot.snapshotItem(i)); |