かってぃのブログ

喫茶店を遊牧しながら勉強したり開発したりする大学院生のブログです。

katty0324

XmlHttpRequest.sendAsBinaryがFirefoxの独自機能らしく、他のブラウザでの実現方法に困っていたら、作ってくれている人がいた!感謝! http://code.google.com/p/chromium/issues/detail?id=35705

on 2011-04-03 02:18:02

webから

ChromeでsendAsBinaryを使う

sendAsBinaryは現在のところ、Firefoxの独自機能で、他のブラウザでは動作しません。

ですが、Chromeに関して言えば、同様の処理をできることが分かったので、記しておきます。

これを利用すれば、確かにChromeでもXMLHttpRequest.sendAsBinaryが動きました!

しかし、この例では、XMLHttpRequestを継承してsendAsBinaryのオーバーライドを行っていますので、これをそのまま使うとFirefoxで動かなくなってしまいます。

これは、ユーザーエージェントを調べて、ブラウザがChromeの場合のみsendAsBinaryを追加することにすれば解決しそうです。

if (window.navigator.userAgent.toLowerCase().indexOf("chrome") > -1) {
    XMLHttpRequest.prototype.sendAsBinary = function(datastr){
        function byteValue(x){
            return x.charCodeAt(0) & 0xff;
        }
        var ords = Array.prototype.map.call(datastr, byteValue);
        var ui8a = new Uint8Array(ords);
        this.send(ui8a.buffer);
    }
}

他のブラウザでも使えると良いのだけれど・・・。

by katty0324 on 2011-04-05 08:24:08

コメント(0)