作者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