【问题标题】:How do I change/replace a flash object with jquery or pure javascript?如何使用 jquery 或纯 javascript 更改/替换 flash 对象?
【发布时间】:2010-09-18 08:15:20
【问题描述】:

我想在 onClick 事件之后更改包含在 jQuery 中的 flash 对象。我写的代码,本质上是:

$(enclosing div).html('');
$(enclosing div).html(<object>My New Object</object>);

在 Firefox 中有效,但在 IE 中无效。我将不胜感激有关这样做的指针或建议。谢谢。

【问题讨论】:

    标签: javascript jquery flash


    【解决方案1】:

    empty() 方法是删除内容的更好方法。不知道这是否能解决你的问题:)

    $('#mydiv').empty();
    

    您也可以尝试replaceWith(content) 方法。

    【讨论】:

      【解决方案2】:

      这就是我正在做的——它取自 swfobject 并稍作修改:

      function removeObjectInIE(el) {
          var jbo = (typeof(el) == "string" ? getElementById(el) : el);
          if (jbo) {
              for (var i in jbo) {
                  if (typeof jbo[i] == "function") {
                      jbo[i] = null;
                  }
              }
              jbo.parentNode.removeChild(jbo);
          }
      }
      
      function removeSWF(id) {
          var obj = (typeof(id) == "string" ? getElementById(id) : id);
          if(obj){
              if (obj.nodeName == "OBJECT" || obj.nodeName == "EMBED") {
                  if (ua.ie && ua.win) {
                      if (obj.readyState == 4) {
                          removeObjectInIE(id);
                      }
                      else {
                          $(document).ready(function() { removeObjectInIE(id); });
                      }
                  }
                  else {
                      obj.parentNode.removeChild(obj);
                  }
              }else if(obj.childNodes && obj.childNodes.length > 0){
                  for(var i=0;i<obj.childNodes.length;i++){
                      removeSWF(obj.childNodes[i]);
                  }
              }
          }
      }    
      

      所以你会这样做removeSWF("mydiv"); - 你可能想以 jQuery 的方式重写它,这是从我正在研究的一个库中获取的,我不能确定 jQuery 会在那里。 (我用 $().ready() 替换了我的准备就绪功能)

      【讨论】:

        【解决方案3】:

        试试$().remove() 方法。这也删除了事件处理程序以避免内存泄漏问题,这也是为什么将 HTML 设置为空不是一个好主意的原因之一。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-08-12
          • 1970-01-01
          • 1970-01-01
          • 2011-06-09
          • 1970-01-01
          • 1970-01-01
          • 2012-10-31
          • 2023-03-27
          相关资源
          最近更新 更多