2013-08-30 23 views
0

..我可以避免这种情况吗?使用jquery复制html内容忽略onclick中的脚本

我会给你一个我正在做的简单运行。

我正在使用以下脚本来复制指定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

+0

什么有关的jsfiddle? – Itay

+0

好主意 - 我会回来的 – Joshc

+0

jQuery似乎得到的HTML就好 - > http://jsfiddle.net/QdBrD/,必须是zclip的东西或您以后使用HTML的方式? – adeneo

回答

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/