Jquery ZeroClipboard 或 Zclip 剪贴板中没有任何内容 IE 8 和 7

2024-01-21

我正在使用 Jquery 插件 ZClip 或 ZeroClipboard,它通过按钮或链接将内容复制到剪贴板。要复制的数据和激活它的链接/按钮是使用ajax加载的,这需要使用插件,我在加载元素后附加它们,如下所示:

$('#ajaxbutton').live('click', function() {
   $.ajax({
    type: "POST",
    url: "ajax.php",
    success: function(msg){
      $('a.ajaxcopymulti').zclip({
         path:'js/ZeroClipboard.swf',
         copy:function(){
         return $('p#ajaxdescription').text();
      }
    });
  });
});

以 ajax.php 为例:

<p id="ajaxdescription">Ajax description copied to clipboard</p>
<p><a href="#" id="ajaxcopy">Click here to copy the above text</a></p>

适用于除 IE 7 和 IE 8 之外的所有其他浏览器。我收到此错误:

Unknown Runtime Error: ZeroClipboard.js, line 135 character 3

所以在插件代码中我更改:

this.div.innerHTML = this.getHTML(box.width, box.height);

to:

$(this.div).html( this.getHTML( box.width, box.height ) ); 

这消除了运行时错误,但似乎没有任何内容被复制到 IE 7 和 8 的剪贴板中。是否有人对此足够熟悉以提供一些帮助?谢谢。


好吧,我发现我的情况出了什么问题。可能这将是与您遇到的问题相同的问题。

IE 在这一行给出错误

this.div.innerHTML = this.getHTML(box.width, box.height);

下一行是

appendElem.appendChild(this.div);

这里我们将 this.div 附加到元素“appendElem”。 appendElem 是一个 DOM 对象,取决于您在 html 代码中放置 html 复制字段的位置。准确的说是二级家长。当appendElem不能包含this.div作为子节点时抛出该错误。就我而言,我的复制字段位于表格单元格中。在这种情况下,appendELEm 是一个 Row 对象,它显然不能包含任何 div(firefox 足够聪明,可以清理代码)。我将复制字段包装在额外的 div 中,因此appendElem 将是一个 DIV 对象。要知道您的appendElem包含什么对象,只需添加和警报功能,如下所示:

    alert(appendElem);
    appendElem.appendChild(this.div);

希望这可以帮助!

卡斯帕·泰曼斯

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jquery ZeroClipboard 或 Zclip 剪贴板中没有任何内容 IE 8 和 7 的相关文章

随机推荐