0

..我怎样才能避免这种情况?

我会简单介绍一下我在做什么。

我正在使用下面的这个脚本来复制指定 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 创建了一个小提琴,它工作正常。

所以它一定和页面的输出有关。

在这里看小提琴。

4

1 回答 1

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/

于 2013-09-02T12:55:18.057 回答