使用jquery复制html内容忽略了onclick中的脚本

时间:2013-08-30 18:33:14

标签: jquery

..我怎么能避免这个?

我会简单地告诉你我正在做的事情。

我使用下面的脚本来复制指定div的代码内容。

$("a.copy-code").on('click', function (e) {
    e.preventDefault();
}).each(function () {
    var linkId = $(this).attr("id");
    $(this).zclip({
        path: '<?php bloginfo('
        template_url '); ?>/clipboard/ZeroClipboard.swf',
        copy: function () {
            return $('div[data-id=' + linkId + ']').html();
        }
    });
});

这一切都很棒,包含对象标签和iframe标签等。

但是我使用上面的脚本来复制这样的内容......

<div class="hide" data-id="copy-wb-small">
<a href="#" onclick="window.open('http://www.live.co.uk/?utm_source=' + window.location.host + '&amp;utm_medium=Web%20Badge&amp;utm_campaign=%2BLive%2B2013'); return false;"><img src="http://www.live.co.uk/assets/mcl-badge-100px.jpg" alt="" /></a>
</div>

正如您所看到的,我的锚标记中有一个onClick标记。

现在当我复制它时,这是我在剪贴板中得到的结果......

<a href="#" onclick=""><img src="http://www.live.co.uk/assets/mcl-badge-100px.jpg" alt=""></a>

它遗漏了我的所有剧本。并且剪贴板中的onClick为空。

任何人都可以建议是否有像.html()这样的函数包含脚本吗?


我用zclip创建了一个小提琴,它工作正常。

所以它必须与页面的输出有关。

请参阅小提琴here

1 个答案:

答案 0 :(得分:0)

我发现了问题。

我猜wordpress the_content()php标签从我的html中删除所有脚本。所以在我的页面中使用了wordpress代码标签,将脚本输出为html。

然后就这样更改了代码。

$("a.copy-code").on('click', function (e) {
  e.preventDefault();
}).each(function () {
  var linkId = $(this).attr("id");
  $(this).zclip({
    path: 'http://secure.fbapps.co.uk/dev/clipboard/ZeroClipboard.swf',
    copy: function() {
        return $('code[data-id='+linkId+']').html();
    }
  });
});

http://jsfiddle.net/Vr4Ky/121/