素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

パースエラーになったXHTMLを、HTMLとして解釈しなおすGrasemonkey

OperaではXHTMLとして解釈できなかった場合、HTMLとして解釈するかどうか選べるのだが、Firefoxではどうにもできないから作った。
前と同じくデータスキームに無理やり流し込んでるからうまくいかないページもあるかもしれない。
UTF-8で保存しないと文字化けするみたい。

// ==UserScript==
// @name           xhtmlHelper
// @namespace      http://d.hatena.ne.jp/javascripter/
// @description    WebページがXHTMLとして解釈できないとき、HTMLとして解釈します。
// @include        http://*
// ==/UserScript==
if(document.firstChild.tagName=='parsererror'){

if(!window.confirm('パースエラーが発生しました。text/htmlとして解釈しなおしますか?')){return false;}
var xhr = new XMLHttpRequest();
xhr.open('GET',location.href,true);
xhr.onreadystatechange = function(){
if(xhr.readyState==4){
location.href='data:text/html,'+encodeURI(xhr.responseText);
}
};
xhr.send(null);
}

参考にしたページ: text/XXXX で開かれたページを別の MIME タイプで開く - m2O - チーム俺等