aboutsummaryrefslogtreecommitdiffstats
path: root/_libly.js
diff options
context:
space:
mode:
authorsuVene2008-12-15 20:05:55 +0000
committersuVene2008-12-15 20:05:55 +0000
commitc01b41bc966cec5cf63114305c26dedb5e454f68 (patch)
tree94a45e70939dfd150e8f566754b497ba15da9fb6 /_libly.js
parentdd20d53f5765bdc0d0cacc750007267c89073f4f (diff)
downloadvimperator-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.js86
1 files changed, 47 insertions, 39 deletions
diff --git a/_libly.js b/_libly.js
index 5a06bf4..8a61284 100644
--- a/_libly.js
+++ b/_libly.js
@@ -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));