我遇到了这个错误,我不确定为什么。我有一个缩小版的excanvas.js,IE中有些东西正在破坏,特别是在:
var b=a.createStyleSheet();
我不确定为什么。有没有人有任何见解?我可以提供更多信息,我只是不确定哪些信息会有所帮助。
答案 0 :(得分:3)
这是一个稍微陈旧的帖子,但我认为发帖会很有用。页面可以包含多少样式信息似乎存在限制,这会导致IE6中出现此错误。我可以使用这个简单的测试页面产生无效的参数错误:
<html>
<head>
<title></title>
<script>
for(var i=0;i<32;i++) {
document.createStyleSheet();
}
</script>
</head>
<body>
</body>
</html>
我认为这是问题的根源。 HTH, 罗素
答案 1 :(得分:1)
最新版本的excanvas.js在IE8中没有为我解决这个问题,所以我将excanvas.js的第111行更新为下面的代码,我不再得到异常。此解决方案的代码来自http://dean.edwards.name/weblog/2010/02/bug85/。
var ss = null;
var cssText = 'canvas{display:inline-block;overflow:hidden;' +
// default size is 300x150 in Gecko and Opera
'text-align:left;width:300px;height:150px}';
try{
ss = doc.createStyleSheet();
ss.owningElement.id = 'ex_canvas_';
ss.cssText = cssText;
} catch(e) {
ss = document.styleSheets[document.styleSheets.length - 1];
ss.cssText += "\r\n" + cssText;
}
答案 2 :(得分:0)
我要做的第一件事就是使用未缩小的版本。看起来这来自于从onreadystatechange调用的init函数,试图设置canvas元素的样式,尽管这并不像人们希望的那样具有启发性。
答案 3 :(得分:0)
最新版本的excanvas为我解决了这个问题。您始终可以从svn trunk获取最新版本。