2010-01-15 77 views
0

這個問題是對我現有的thread的延續。刪除表格列中的javascript代碼

下面給出的是代碼段。表格列標籤內嵌有JavaScript代碼。我想擺脫腳本標記。什麼可以是另一種方式調用駐留在單獨的.js文件中的JavaScript函數。

<tr> 
     <td width="599" height="154" valign="top"> 

      <script type="text/javascript"> 
       //new fadeshow(IMAGES_ARRAY_NAME, slideshow_width, slideshow_height, borderwidth, delay, pause (0=no, 1=yes), optionalRandomOrder) 
      new fadeshow(fadeimages, 593, 163, 0, 3000, 1, "R") 
       //new fadeshow(fadeimages2, 163, 225, 0, 3000, 0)/ 
      </script> 

     </td> 
    </tr> 

回答

1

編寫一個JavaScript函數,它可以在頁面上找到所有td元素。現在,您需要一個說「現在調用fadeshow」的事件。這通常是onClick事件。因此,在你的函數,每個td元素,註冊一個新的函數,它們調用fadeshow:當執行fadeshow

td.onclick = function() { fadeshow(this, ...) }; 

this將包含td元素。

2

您可能想要重構fadeshow以將其自身呈現在特定元素中。然後給你的TD(...)一個ID,並且在你關閉了包含相應TD(v1)的標籤或者你可以掛載onload(v2)的全局初始化代碼後,在HTML頁面中調用你的函數。

您可能需要通過CSS爲TD指定高度和寬度以避免移動效果。

V1看起來像:

... 
</table> 
<script type="..."> 
    new fadeshow(fadeimages, 593, 163, 0, 3000, 1, "R", 
     document.getElementById('fadeshow-goes-here')); 
</script> 

V2看起來像:

<body onload="applicationInit()"> 
... 

(你會從內部applicationInit調用fadeshow(...))。

0

我認爲腳本將一些HTML寫入表格單元格。如果是這樣,我期望它在內部使用document.write命令。如果是這樣的話,以任何有意義的方式移動它可能會涉及重構腳本。所以如果你不知道足夠的JS來嘗試這些,我會把它留在原地。世界上有比這更糟糕的幻想。