From c7495698d02c28f057231b9c051a090ace0f8b4c Mon Sep 17 00:00:00 2001 From: teramako Date: Sun, 8 Feb 2009 14:46:47 +0000 Subject: _libly.jsのcreateHTMLDocumentのアルゴリズムを変更 git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@29731 d0d07461-0603-4401-acd4-de1884942a52 --- _libly.js | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to '_libly.js') diff --git a/_libly.js b/_libly.js index 28b191f..9613e37 100644 --- a/_libly.js +++ b/_libly.js @@ -288,12 +288,21 @@ libly.$U = {//{{{ return str.replace(new RegExp('<' + ignoreTags + '(?:[ \\t\\n\\r][^>]*|/)?>([\\S\\s]*?)<\/' + ignoreTags + '[ \\t\\r\\n]*>', 'ig'), ''); }, createHTMLDocument: function(str, xmlns, doc) { + let root = document.createElementNS("http://www.w3.org/1999/xhtml", "html"); + let uhService = Cc["@mozilla.org/feed-unescapehtml;1"].getService(Ci.nsIScriptableUnescapeHTML); + let text = str.replace(/^[\s\S]*?]*)?>[\s]*|<\/body[ \t\r\n]*>[\S\s]*$/ig, ''); + let fragment = uhService.parseFragment(text, false, null, root); + let htmlFragment = document.implementation.createDocument(null, 'html', null); + htmlFragment.documentElement.appendChild(htmlFragment.importNode(fragment,true)); + return htmlFragment; + /* うまく動いていない場合はこちらに戻してください 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; + */ }, getFirstNodeFromXPath: function(xpath, context) { if (!xpath) return null; -- cgit v1.2.3