[英]javascript error: Invalid argument in IE on anonymous function
我在Internet Explorer(我在IE 8上尝试过)中遇到了一个奇怪的错误,在其他浏览器上一切正常。
与此功能类似的函数的参数无效(我无法发布原始参数,因为它来自最初被混淆和压缩的不可再发行的库):
function createADiv() {
var f = document.createElement('div');
f.set = [function (z) { // error on this line
f.style.width = z
}, function (z) {
f.style.height = z
}];
return f;
}
问题在于f的范围,但我不明白为什么在匿名函数中使用f不起作用。
关于如何规避此Internet Explorer错误的任何想法?
我检查了其他“无效的参数错误”,但这似乎是另一种情况。
提前致谢
我认为这是您想要做的:
function createADiv() {
var f = document.createElement('div');
f.set = {
width: function (z) { // error on this line
f.style.width = z
},
height: function (z) {
f.style.height = z
}
};
return f;
}
现在,当您创建一个div时,您可以执行以下操作:
var newDiv = createADiv();
newDiv.set.height("200px");
但说实话,这是没有用的,因为javascript已经做到了:
newDiv.style.height = "200px";
没有太大的区别
不知道为什么,请尝试这样重写它
function createADiv() {
var f = document.createElement('div');
f.set = [function a (z) { // error on this line
f.style.width = z
}, function b (z) {
f.style.height = z
}];
return f;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.