From c01b41bc966cec5cf63114305c26dedb5e454f68 Mon Sep 17 00:00:00 2001 From: suVene Date: Mon, 15 Dec 2008 20:05:55 +0000 Subject: * 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 --- _libly.js | 86 ++++++++++++++++++++++++++++++++++----------------------------- 1 file 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 = vimperator plugins library? 適当なライブラリっぽいものたち。 suVene - 0.1.9 + 0.1.10 1.2 2.0pre ※1 - ※1 の文字列を取得します。 + ※1 + ※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} ]]> ; //}}} @@ -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)); -- cgit v1.2.3