作者TKirby ( ^-^)
看板Web_Design
标题Re: [问题] 请教一个javascript语法
时间Fri Dec 3 23:38:55 2004
你觉得你写 xxx.onerror=MyErrorFunc(imgName)是什麽意思呢?
没错!就是「我要让xxx.onerror的值等於呼叫MyErrorFunc(imgName)的传回值
不过你的MyErrorFunc现在没有传回值,所以xxx.onerror就变成 undefined啦~
那你可能就会开始想「那我到底要怎麽把一个函数指定给一个变数呢?」
你可以这样写
xxx.onerror=MyErrorFunc
但是这样就没有办法传值啦~
所以最终的解法就是想办法写一个新的会传值的函数罗
其实 function 也是物件,可以 new!
document.images[imgName].onerror = new Function("myErrorFunc('"+imgName+"');");
※ 引述《NelsonT (档案清除手 v1.0)》ꐠ铭言:
: 感谢各位,我已找到解法。
: 在 html 里头这样写:
: <img name="haha" onError=myErrorFunc(this.name)>
: 在 javascript 这样写:
: function myErrorFunc(badImage)
: {
: document.images[badImage].style.dispaly = "none";
: }
: 就可以了。
: 可是现在问题来了!
: 若我有好几个 <img>,里头都要再写一次 onError=myErrorFunc(this.name)
: 这样会很麻烦,也让程式变大很多。
: 我想问的是,有没有办法一次指定所有的 <img> 呢?
: 推 charto:使用 TKirby 提供的搜寻阿!! 61.66.73.162 12/03
: 我试过以下的程式码,可是却失败了。
: 我的片段html如下
: <img name="img1">
: <img name="img2">
: ...
: <img name="img9">
: 而javascript如下
: function myErrorFunc(badImage)
: {
: document.images[badImage].style.display = "none";
: }
: // 以下是设定 error 的片段程式码
: for(i = 1; i <= 9; i++)
: {
: imgName = "img"+i;
: document.images[imgName].src = "....."; // 这行可以work
: document.images[imgName].onerror = myErrorFunc(imgName); // 这行不能work
: }
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.30.67
※ 编辑: TKirby 来自: 140.112.30.67 (12/03 23:59)
1F:推 NelsonT:又学了一招,大感谢:p 220.136.182.218 12/04