From c7ab122c30ac83db4d18d77314c55ac4ec2301d5 Mon Sep 17 00:00:00 2001 From: suVene Date: Thu, 11 Dec 2008 14:27:44 +0000 Subject: bugfix, etc. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@26416 d0d07461-0603-4401-acd4-de1884942a52 --- _libly.js | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/_libly.js b/_libly.js index 6cbf1f7..d89a5b1 100644 --- a/_libly.js +++ b/_libly.js @@ -5,7 +5,7 @@ var PLUGIN_INFO = vimperator plugins library? 適当なライブラリっぽいものたち。 suVene - 0.1.5 + 0.1.6 1.2 2.0pre ]*|/)?>([\\S\\s]*?)<\/' + ignoreTags + '[ \\t\\r\\n]*>', 'ig'), ''); }, - createHTMLDocument: function(str) { - var htmlFragment = document.implementation.createDocument(null, 'html', null); - var range = document.createRange(); - range.setStartAfter(window.content.document.body); + createHTMLDocument: function(str, doc) { + doc = doc || window.content.document; + var htmlFragment = doc.implementation.createDocument(null, 'html', null); + var range = doc.createRange(); + range.setStartAfter(doc.body); htmlFragment.documentElement.appendChild(htmlFragment.importNode(range.createContextualFragment(str), true)); return htmlFragment; }, getNodesFromXPath: function(xpath, doc, callback, obj) { var ret = []; if (!xpath || !doc) return ret; - var node = doc || document; + var node = doc || window.content.document; var nodesSnapshot = (node.ownerDocument || node).evaluate(xpath, node, 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); @@ -394,7 +400,7 @@ libly.Response.prototype = { this.htmlStripScriptFragmentstr = libly.$U.stripTags(this.htmlFragmentstr, ignoreTags); this.doc = libly.$U.createHTMLDocument(this.htmlStripScriptFragmentstr, xmlns); } - if (!xpath) return this.doc; + if (!xpath) xpath = '//*'; return libly.$U.getNodesFromXPath(xpath, this.doc, callback); } }; -- cgit v1.2.3