IE専用技のdocument.createStyleSheetは使いすぎると駄目らしい
IEでのみ使えるdocument.createStyleSheetですが、使いまくるとJavaScriptエラー「この操作を完了するのに十分な記憶域がありません」が発生します。DOM操作で変更できない所(htmlに対する指定等、下の検証コードがそうなっています)のStyleもいじれるので大変便利なんですが、使う時は注意が必要。
検証コード
<html> <head> <title>js create css test</title> <script type="text/javascript"> var count = 0; var test = function(){ try{ (function(){ document.createStyleSheet("javascript:'html, body{overflow-x:hidden;}'"); count++; arguments.callee(); })(); } catch(e){ alert('Count:' + count + '\n' + e.message); } } </script> </head> <body> <input type="button" value="start!" onclick="test();" /> </body> </html>
対応方法を調べてみた
英語版のメッセージをid:akihiroxに教えてもらったのでググってみたら解決方法が。
try {
doc.createStyleSheet(css_file)
} catch(e) {}
TinyMCE Forum / createStyleSheet causes Javascript error "Not enough storage..."
こんなんでいいのかよwwwww