The following text discusses some of the limitations of aspNetMHT and MHT documents in general.
The biggest issue with aspNetMHT is Javascript emitted HTML. Because aspNetMHT is 100% .NET code, it does not have any type of javascript engine embedded in it. Thus, HTML that is emitted by Javascript is not able to be parsed. For example, lets look at the following snippet of javascript code.
<script>
function dosomething(){
var imgsrc;
if( dosometing )imgsrc= 'image1.gif';
else
imgsrc= 'image2.gif';
document.write( '<img src=' + imgsrc + '>');
}
</script>
aspNetMHT will not be able to determine the true value of the <img> tag. Although the code will be executed in the in the MHT file, and if connected to the internet, the image will be viewable, the image itself will not be embedded in the MHT document.
This same logic applies to dynamially created Frames, IFrames and other referenced resources, along with any Javascript window.location.href redirects.
This limitation is not really a limitation of aspNetMHT as it is a limitation of the browsers or their plugins. Flash and other plugins seem to have a problem referencing embedded resources, such as flash .swf files. Therefore, these files are not embedded in the MHT document. They are still linked externally. During our testing and development of aspNetMHT, embedding flash resources caused the browser to either hang or else crash.