zt13502162671 2019-05-15 17:28 采纳率: 0%
浏览 241

ie8 的script for 和event 如何转换成为普通的js

良田的官方文档中有

<OBJECT ID="EloamGlobal_ID" CLASSID="CLSID:52D1E686-D8D7-4DF2-9A74-8B8F4650BF73"></OBJECT>
<script language="Javascript" event="DevChange(type, idx, dbt)" for="EloamGlobal_ID" type="text/JavaScript">

但是这个只有在ie 8里面支持这个for 和event 的方法,请问,ie11 里面该如何修改js 来支持

<script language="Javascript" event="DevChange(type, idx, dbt)" for="EloamGlobal_ID" type="text/JavaScript">

这句话呢

  • 写回答

1条回答 默认 最新

  • 一只小爪磕 新星创作者: 前端开发技术领域 2024-06-26 22:36
    关注

    您好题主!
    本答案参考GPT-4o,由爪磕整理并总结,希望对您有所帮助!


    在现代浏览器(如 IE11 及其后的浏览器)中,<script> 标签的 forevent 属性已经不再受支持。相应的事件绑定需要通过 JavaScript DOM 操作来实现。

    以下是如何将你的代码转换为现代 JavaScript 代码的方法:

    原始代码(仅在 IE8 中支持)

    <OBJECT ID="EloamGlobal_ID" CLASSID="CLSID:52D1E686-D8D7-4DF2-9A74-8B8F4650BF73"></OBJECT>
    <script language="Javascript" event="DevChange(type, idx, dbt)" for="EloamGlobal_ID" type="text/JavaScript">
      // 处理事件的代码
    </script>
    

    转换为现代 JavaScript 代码

    首先,确保你的 OBJECT 元素已经加载到页面:

    <OBJECT id="EloamGlobal_ID" classid="CLSID:52D1E686-D8D7-4DF2-9A74-8B8F4650BF73"></OBJECT>
    

    然后,在脚本中使用 addEventListener 来绑定事件:

    <script type="text/javascript">
      document.addEventListener('DOMContentLoaded', function() {
        var eloamGlobal = document.getElementById('EloamGlobal_ID');
    
        // 检查对象是否存在
        if (eloamGlobal) {
          // 绑定事件处理程序
          eloamGlobal.addEventListener('DevChange', function(event) {
            // 从事件对象中获取参数
            var type = event.type;
            var idx = event.idx;
            var dbt = event.dbt;
            
            // 处理事件的代码
            console.log('Type:', type, 'Idx:', idx, 'Dbt:', dbt);
          });
        }
      });
    </script>
    

    解释

    1. document.addEventListener('DOMContentLoaded', ...): 确保 DOM 完全加载后再执行脚本。
    2. document.getElementById('EloamGlobal_ID'): 获取 OBJECT 元素。
    3. eloamGlobal.addEventListener('DevChange', function(event) { ... }): 使用标准的 addEventListener 方法绑定事件处理程序。
    4. 事件对象 (event):
      • 在某些情况下,事件对象可能需要特殊处理,以便能够访问 type, idx, 和 dbt 参数。如果 DevChange 是自定义事件,可能需要自定义事件触发逻辑。

    注意事项

    • 由于 OBJECT 元素通常用于嵌入 ActiveX 控件或类似的旧技术,可能需要特定的浏览器设置才能正常运行。
    • 确保事件名称(如 DevChange)和事件触发机制在现代浏览器中依旧有效。如果事件是通过 ActiveX 控件触发的,可能需要额外的处理或兼容性设置。

    通过这些步骤,你可以将仅在 IE8 中支持的 forevent 属性转换为在现代浏览器中兼容的代码。

    评论

报告相同问题?