From 03139870c25fe5b4a797679de9dcc80370c7d82b Mon Sep 17 00:00:00 2001 From: mitsugu oyama Date: Sat, 23 Oct 2010 17:57:44 +0900 Subject: Minefield 4.0b8pre にて TINAMIのコンテンツを DOM で扱うように変更 2010/10/23(+900) の Minefield 4.0b8pre にて 例外発生の原因となっていた TINAMI の非正規化 HTML であっても range.createContextualFragment(str) が例外を throw しなく なったので、Minefield 4.0b8pre では HTML コンテンツを DOM で扱うようにした。 --- tinami.js | 46 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 41 insertions(+), 5 deletions(-) (limited to 'tinami.js') diff --git a/tinami.js b/tinami.js index 2e4738a..f0dbd68 100644 --- a/tinami.js +++ b/tinami.js @@ -100,11 +100,47 @@ commands.addUserCommand( xhrImg.send(null); }; + let getDOMHtmlDocument=function(str){ + let doc; + let range; + try{ + if(document.implementation.createHTMLDocument){ + doc=document.implementation.createHTMLDocument(''); + range=doc.createRange(); + range.selectNodeContents(doc.documentElement); + range.deleteContents(); + doc.documentElement.appendChild(range.createContextualFragment(str)); + }else{ + doc=document.implementation.createDocument(null,'html',null); + range=document.createRange(); + range.selectNodeContents(document.documentElement); + let content=doc.adoptNode(range.createContextualFragment(str)); + doc.documentElement.appendChild(content); + } + }catch(e){ + doc=null; + } + return doc; + }; + + let getImageUrl=function(pageContents){ + let url; + let htmldoc=getDOMHtmlDocument(pageContents); + if(htmldoc){ + if(0