【问题标题】:Removing JavaScript code from within a Table column从 Table 列中删除 JavaScript 代码
【发布时间】:2020-10-31 02:27:28
【问题描述】:

这个问题是我现有的thread 的延续。

下面给出的是代码部分。在 Table 列标记中嵌入了 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>

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    您可能想要重构 fadeshow 以在特定元素中呈现自身。然后为您的 TD (...) 提供一个 ID,并在关闭包含相应 TD (v1) 的标签后在 HTML 页面中调用您的函数,或者在您可以挂钩 onload (v2) 的全局初始化代码中调用您的函数。

    您可能需要通过 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(...))。

    【讨论】:

      【解决方案2】:

      编写一个 JavaScript 函数,它可以找到页面上的所有 td 元素。现在,您需要一个显示“立即调用 fadeshow”的事件。这通常是 onClick 事件。所以在你的函数中,对于每个td 元素,注册一个调用fadeshow的新函数:

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

      this 在执行fadeshow 时将包含td 元素。

      【讨论】:

        【解决方案3】:

        我假设脚本将一些 HTML 写入表格单元格。如果是这样,我希望它在内部使用 document.write 命令。如果是这样的话,以任何有意义的方式移动它都可能涉及重构脚本。所以如果你不知道足够的 JS 来尝试,我会把它留在原处。世界上还有比这更糟糕的笑话。

        【讨论】:

          猜你喜欢
          • 2012-09-29
          • 1970-01-01
          • 2019-06-27
          • 1970-01-01
          • 2011-10-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多