Для выделения кодов на forumotion я использую вот такой код:
Подходит ко всем движкам.
Этот - для myBB:
Пользуемся
(с) Your Roll. Туториал предоставлен блоггером и кибермагом Космо Мизраил Горынычем. Любая публикация данного материала без его разрешения запрещена.
- Для phpBB2:
- Код:
function selectCode(a){
var e = jQuery(a).next('.cont_code')[0];
if (window.getSelection){var s = window.getSelection();
if (s.setBaseAndExtent){s.setBaseAndExtent(e, 0, e, e.innerText.length - 1);}
else{
if (window.opera && e.innerHTML.substring(e.innerHTML.length - 4) == '<BR>'){
e.innerHTML = e.innerHTML + ' ';}
var r = document.createRange();
r.selectNodeContents(e);
s.removeAllRanges();
s.addRange(r);}
}
else if (document.getSelection){
var s = document.getSelection();
var r = document.createRange();
r.selectNodeContents(e);
s.removeAllRanges();
s.addRange(r);}
else if (document.selection){
var r = document.body.createTextRange();
r.moveToElementText(e);
r.select();}
}
if(text){}else{ var text = 'Selecionar todos';}
jQuery(document).ready(function(){
jQuery(".code > .cont_code").before('<a href="#" onclick="selectCode(this); return false;" style="font-size: 12px; color: #374E70; line-height: 24px;margin-top: -25px;position: absolute;margin-left: 50px;">[ Выделить содержимое ]</a>');
});
- Для других движков:
- Код:
function selectCode(a){
// Get ID of code block
var e = a.parentNode.parentNode.getElementsByTagName('CODE')[0];
// Not IE
if (window.getSelection){var s = window.getSelection();
// Safari
if (s.setBaseAndExtent){s.setBaseAndExtent(e, 0, e, e.innerText.length - 1);}
// Firefox and Opera
else{
// workaround for bug # 42885
if (window.opera && e.innerHTML.substring(e.innerHTML.length - 4) == '<BR>'){
e.innerHTML = e.innerHTML + ' ';}
var r = document.createRange();
r.selectNodeContents(e);
s.removeAllRanges();
s.addRange(r);}
}
// Some older browsers
else if (document.getSelection){
var s = document.getSelection();
var r = document.createRange();
r.selectNodeContents(e);
s.removeAllRanges();
s.addRange(r);}
// IE
else if (document.selection){
var r = document.body.createTextRange();
r.moveToElementText(e);
r.select();}
}
if(text){}else{ var text = 'Selecionar todos';}
jQuery(document).ready(function(){
jQuery("dl.codebox dt").not("dl.spoiler > dt").html('Код: <a href="#" onclick="selectCode(this); return false;" style="font-size: 12px; float: right; color: #374E70; line-height: 24px;">[ Выделить содержимое ]</a>');
});
Подходит ко всем движкам.
Этот - для myBB:
- Код:
<script type="text/javascript">
function select_text(elem) {
if(window.getSelection) {
var s=window.getSelection();
if(s.setBaseAndExtent){
s.setBaseAndExtent(elem,0,elem,elem.innerText.length-1);
}
else {
var r=document.createRange();
r.selectNodeContents(elem);
s.removeAllRanges();
s.addRange(r);
}
}
else if(document.getSelection){
var s=document.getSelection();
var r=document.createRange();
r.selectNodeContents(elem);
s.removeAllRanges();
s.addRange(r);
}
else if(document.selection){
var r=document.body.createTextRange();
r.moveToElementText(elem);
r.select();
}
}
</script>
<script type="text/javascript">
var div = document.getElementById('pun-main').getElementsByTagName('div');
for(x in div){
if(div[x].className=='code-box'){
div[x].getElementsByTagName('strong')[0].innerHTML = '<a href="#" onclick="select_text(this.parentNode.parentNode.childNodes[1].getElementsByTagName(\'pre\')[0]); return false;">Выделить код</a>';
}
}
</script>
Пользуемся
(с) Your Roll. Туториал предоставлен блоггером и кибермагом Космо Мизраил Горынычем. Любая публикация данного материала без его разрешения запрещена.
Последний раз редактировалось: Космо (05.04.13 9:18), всего редактировалось 2 раз(а)