Runtime error when setting innerHTML in IE8

When I use plupload, I was puzzled by an exception.
It’s simple.
I reproduce it with the critical code.
HTML:

<p id="container"></p>

Javascript:

var a = document.createElement('div');
document.getElementById('container').appendChild(a);
a.innerHTML="222";

In IE8,It throws runtime exception.

I found some same situations, just like to modify a element triggered by itself, but this one seems unreasonable.

Finally, I found out why: the html content models, Each element defined in this specification has a content model: a description of the element’s expected contents. An HTML element must have contents that match the requirements described in the element’s content model.

The link of description http://www.w3.org/TR/2011/WD-html5-20110525/content-models.html

And The content models http://www.w3.org/TR/html-markup/common-models.html

I thought IE has more powerful fault tolerant, may be sometimes.

XBase64

Basics

xbase64 is a fast javascript base64 encoder and decoder;

Is it the fastest?

As far as I know it’s fast enough. Although it depends on far too many variables to enumerate, I wrote a test, the result below is for reference.

Tell me if you know a faster one. Continue reading

Webp-test

Webp-test is a javascript tool to check whether the browser support webp.

Why Webp-test?

WebP is an image format that employs both lossy and lossless compression. The degree of compression is adjustable so a user can choose the trade-off between file size and image quality. WebP typically achieves an average of 39% more compression than JPEG and JPEG 2000, without loss of image quality.
But a few browsers support WebP right now (as of April 2010, Google Chrome 9+ and Opera 11.10 beta), how to use it?
Now you can use webptest to test browser whether it supports.
Continue reading