每当用户复制文字时,我都希望将链接添加回我的网站。
每当用户从我的网站复制文本时,我都希望将链接添加回我的网站。比如“在我的网站上阅读更多内容:URL”。我相信你以前碰到过这个。
我在野外发现了这个代码(对于Wordpress),但它根本不起作用。我使用最新版本的Firefox和Safari在Wordpress 3.8上进行了测试。 Javascript代码有什么问题吗?还是Wordpress代码本身?
function add_copyright_text() {
if (is_single()) { ?>
<script type='text/javascript'>
function addLink() {
if (
window.getSelection().containsNode(
document.getElementsByClassName('entry-content')[0], true)) {
var body_element = document.getElementsByTagName('body')[0];
var selection;
selection = window.getSelection();
var oldselection = selection
var pagelink = "<br /><br /> Read more: <?php the_title(); ?> <a href='<?php echo get_permalink(get_the_ID()); ?>'><?php echo get_permalink(get_the_ID()); ?></a>"; //Change this if you like
var copy_text = selection + pagelink;
var new_div = document.createElement('div');
new_div.style.left='-99999px';
new_div.style.position='absolute';
body_element.appendChild(new_div );
new_div.innerHTML = copy_text ;
selection.selectAllChildren(new_div );
window.setTimeout(function() {
body_element.removeChild(new_div );
},0);
}
}
document.oncopy = addLink;
</script>
<?php
}
}
add_action( 'wp_head', 'add_copyright_text');
答案 0 :(得分:1)
我使用的是同一个帖子,它对我也没有用。我所做的是稍微更改代码以始终允许此功能。
<?php
/*******************************
*
* Read more Copyright Text
*
*******************************/
function add_copyright_text() {
?>
<script type='text/javascript'>
function addLink() {
var body_element = document.getElementsByTagName('body')[0];
var selection;
selection = window.getSelection();
var oldselection = selection
var pagelink = "<br /><br /> Read more at XXX: <?php the_title(); ?> <a href='<?php echo get_permalink(get_the_ID()); ?>'><?php echo get_permalink(get_the_ID()); ?></a>"; //Change this if you like
var copy_text = selection + pagelink;
var new_div = document.createElement('div');
new_div.style.left='-99999px';
new_div.style.position='absolute';
body_element.appendChild(new_div );
new_div.innerHTML = copy_text ;
selection.selectAllChildren(new_div );
window.setTimeout(function() {
body_element.removeChild(new_div );
},0);
}
document.oncopy = addLink;
</script>
<?php
}
add_action( 'wp_head', 'add_copyright_text');
?>
这不是一个很大的改变。我所做的就是删除以下条件:
if (is_single()) { ?> .... <?php }
if (window.getSelection().containsNode(document.getElementsByClassName('entry-content')[0], true)) { ...}
希望它对你有所帮助。此外,还有一个plugin您可能想要检查,这应该可以帮助您这样做。 (虽然我还没试过)。
答案 1 :(得分:1)
这是我更好的解决方案,它会链接到当前打开的网址:
/*---------------------------------------------------------------------------*/
/* give paste content link back
/*---------------------------------------------------------------------------*/
function add_copyright_text() {
?>
<script type='text/javascript'>
function addLink() {
var body_element = document.getElementsByTagName('body')[0];
var selection;
selection = window.getSelection();
var oldselection = selection
var pagelink = "<br /><br /> link : <a href='http://<?php echo $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>'>http://<?php echo $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?></a>"; //Change this if you like
var copy_text = selection + pagelink;
var new_div = document.createElement('div');
new_div.style.left='-99999px';
new_div.style.position='absolute';
body_element.appendChild(new_div );
new_div.innerHTML = copy_text ;
selection.selectAllChildren(new_div );
window.setTimeout(function() {
body_element.removeChild(new_div );
},0);
}
document.oncopy = addLink;
</script>
<?php
}
add_action( 'wp_head', 'add_copyright_text');
?>