Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 03.02.2013, 16:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

sidarvik,
Вариант замены
<!DOCTYPE HTML>
<html>
<head>
  <title></title>
<meta charset="utf-8" />
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(function(){
$('img.highslide').each(function(){
 var bigImgLink =  $(this).attr("onclick").replace(/[\s\S]+src:.(.*?jpg)[\s\S]+/,'$1')
 var a = $("<a/>").attr({'rel':'group1' , 'class' : 'fancybox' , 'href' : bigImgLink})
 $(this).removeAttr("onclick").removeClass().wrap(a)
});
alert($('body').html());
});
</script>
</head>
<body>
<p class="fotoline"><img class="highslide" onclick="try{hs.expand(this,{src:'/d/163953/d/hurgada-.jpg'});}catch(e){}" src="/d/163953/d/180489406_5.jpg" width="180" height="120" alt="Хургада " border="0" /><img class="highslide" onclick="try{hs.expand(this,{src:'/d/163953/d/3170138978_07448bfbdf_o.jpg'});}catch(e){}" src="/d/163953/d/180488006_5.jpg" width="180" height="135" alt="3170138978_07448bfbdf_o" border="0" /><img class="highslide" onclick="try{hs.expand(this,{src:'/d/163953/d/egipet_1600.jpg'});}catch(e){}" src="/d/163953/d/109448406_5.jpg" width="180" height="135" alt="egipet_1600" border="0" /><img class="highslide" onclick="try{hs.expand(this,{src:'/d/163953/d/180489006_7.jpg'});}catch(e){}" src="/d/163953/d/180489006_5.jpg" width="180" height="135" alt="4064" border="0" /><img class="highslide" onclick="try{hs.expand(this,{src:'/d/163953/d/81.jpg'});}catch(e){}" src="/d/163953/d/109447006_5.jpg" width="180" height="135" alt="81" border="0" /></p>
</html>
Ответить с цитированием
  #12 (permalink)  
Старый 03.02.2013, 16:32
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<script src="http://code.jquery.com/jquery-latest.js"></script>


<a  rel="group1" href="/images/big_pic.jpg" class="fancybox">
  <img src="http://javascript.ru/forum/images/smilies/smile.gif" alt="picture" border="0" height="150" width="200" />
</a>


<script type="text/javascript">
$('a.fancybox').on('click',function(){
  alert($(this).attr("href"));
  return false;
});
</script>

Последний раз редактировалось Deff, 03.02.2013 в 16:52.
Ответить с цитированием
  #13 (permalink)  
Старый 03.02.2013, 16:33
Новичок на форуме
Отправить личное сообщение для sidarvik Посмотреть профиль Найти все сообщения от sidarvik
 
Регистрация: 03.02.2013
Сообщений: 7

Сообщение от danik.js Посмотреть сообщение
Я думал вы хотите через скрипт прогнать свои файлы и внести изменения в код.

Теперь ясно что вы просто хотите поставить костыль чтоб все работало со старым кодом
Да, именно так
Ответить с цитированием
  #14 (permalink)  
Старый 03.02.2013, 16:46
Новичок на форуме
Отправить личное сообщение для sidarvik Посмотреть профиль Найти все сообщения от sidarvik
 
Регистрация: 03.02.2013
Сообщений: 7

Сообщение от рони
$('img.highslide').each(function(){
 var bigImgLink =  $(this).attr("onclick").replace(/[\s\S]+src:.(.*?jpg)[\s\S]+/,'$1')
 var a = $("<a/>").attr({'rel':'group1' , 'class' : 'fancybox' , 'href' : bigImgLink})
 $(this).removeAttr("onclick").removeClass().wrap(a)
});
Фантастика! Теперь все работает! Спасибо большое, рони!
Я сама тоже как раз подумала про регулярные выражения...

Последний раз редактировалось sidarvik, 03.02.2013 в 16:57.
Ответить с цитированием
  #15 (permalink)  
Старый 03.02.2013, 16:51
Новичок на форуме
Отправить личное сообщение для sidarvik Посмотреть профиль Найти все сообщения от sidarvik
 
Регистрация: 03.02.2013
Сообщений: 7

Deff,
простите, а это
Сообщение от Deff Посмотреть сообщение
<script src="http://code.jquery.com/jquery-latest.js"></script>


<a  rel="group1" href="/images/big_pic.jpg" class="fancybox">
  <img src="http://javascript.ru/forum/images/smilies/smile.gif" alt="picture" border="0" height="150" width="200" />
</a>
<script type="text/javascript">

$("a.fancybox img").load(function(){
    $(this).parent().get(0).setAttribute("onclick","return false")
});
$('a.fancybox img').on('click',function(){alert("A")

});

</script>

для чего?
Ответить с цитированием
  #16 (permalink)  
Старый 03.02.2013, 16:55
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от sidarvik
для чего?
Эт я тестировал (live или on в данной библе

Тут "on" c 1.9 идет
========================== Сейчас код рабочий
Ответить с цитированием
  #17 (permalink)  
Старый 03.02.2013, 22:55
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

рони, я предложил сделать прокси для fancybox через фэйковый hs. ИМХО самое напрашивающееся и быстрое решение.
Deff, задача то совершенно другая. Нужно чтоб старый код для hs работал с fancybox.

Сообщение от sidarvik
Я сама тоже как раз подумала про регулярные выражения...
Я тоже о них подумал сначала. А потом посмотрел на код и подумал: это же тупо - парсить javascript-код, когда его можно просто запускать, воссоздав недостающие объекты и функции )))

Всегда избегаю регулярки, если подругому никак или медленно.
Ответить с цитированием
  #18 (permalink)  
Старый 04.02.2013, 00:00
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от danik.js
Deff, задача то совершенно другая. Нужно чтоб старый код для hs работал с fancybox.
<!DOCTYPE html>
<html>
<head>
  <title></title>
<link rel="stylesheet" href="http://fancyapps.com/fancybox/source/jquery.fancybox.css?v=2.1.4" type="text/css" media="screen" />
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="http://fancyapps.com/fancybox/source/jquery.fancybox.pack.js?v=2.1.4"></script>
<script>
$(document).ready(function(){
  $("p.fotoline").find("img").each(function(){
    var href=$(this).attr('onclick').toString().replace(/^[\s\S]*?src:'([\s\S]*?)'[\s\S]*$/img,'$1');
    $(this).removeAttr("class").wrap('<a  rel="group1" class="gallery" href="'+href+'"></a>')
    $(this).parent().html($(this).parent().html().replace(/onclick=".*?"/i,''));
  });
});
</script>
<script type="text/javascript">
$(document).ready(function() {
    $("a.gallery").fancybox();
});
</script>
</head>
<body>
              <p class="fotoline">
                <img class="highslide" onclick="try{hs.expand(this,{src:'/d/163953/d/hurgada-.jpg'});}catch(e){}" src="/d/163953/d/180489406_5.jpg" width="180" height="120" alt="Хургада " border="0">
                <img class="highslide" onclick="try{hs.expand(this,{src:'http://www.holydieexplorer.com/wp-content/uploads/2011/07/pyramids-cairo-egypt-1600-1024x768.jpg'});}catch(e){}" src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQm0lSr3gjMZ12XQh6m8_6S2kfOEU2ryue9XLfByz3XIFuj-mMmcqjcXcyv" width="180" height="135" alt="3170138978_07448bfbdf_o" border="0">
                <img class="highslide" onclick="try{hs.expand(this,{src:'/d/163953/d/egipet_1600.jpg'});}catch(e){}" src="/d/163953/d/109448406_5.jpg" width="180" height="135" alt="egipet_1600" border="0">
                <img class="highslide" onclick="try{hs.expand(this,{src:'/d/163953/d/180489006_7.jpg'});}catch(e){}" src="/d/163953/d/180489006_5.jpg" width="180" height="135" alt="4064" border="0">
                <img class="highslide" onclick="try{hs.expand(this,{src:'/d/163953/d/81.jpg'});}catch(e){}" src="/d/163953/d/109447006_5.jpg" width="180" height="135" alt="81" border="0">
              </p>

</body>
</html>

Последний раз редактировалось Deff, 04.02.2013 в 01:28.
Ответить с цитированием
  #19 (permalink)  
Старый 04.02.2013, 00:34
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

http://jsfiddle.net/danya_postfactum/YDPQy/
К сожалению в моем варианте не будет работать группировка.
Ответить с цитированием
  #20 (permalink)  
Старый 04.02.2013, 01:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Все трое мастерили одно и тоже )))
<!DOCTYPE html>
<html>
<head>
  <title></title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<link rel="stylesheet" href="http://fancyapps.com/fancybox/source/jquery.fancybox.css?v=2.1.4" type="text/css" media="screen" />
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="http://fancyapps.com/fancybox/source/jquery.fancybox.pack.js?v=2.1.4"></script>
<script language="JavaScript" type="text/javascript">
var hs = {
    expand: function(element, options) {
        $.fancybox( {href : options.src,
        title : 'НАДОЖЕ РАБОТАЕТ',
        openEffect	: 'elastic',
    	closeEffect	: 'elastic'} );

    }
};
</script>
<img class="highslide" onclick="try {hs.expand(this,{src:'http://farm8.staticflickr.com/7152/6394238505_c94fdd1d89_b.jpg'});}catch(e){}" src="http://farm8.staticflickr.com/7152/6394238505_c94fdd1d89_m.jpg" width="200" height="150" alt="picture" border="0" />
</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проиндексировать картинки HTML код которых генерируется на JS greatilya Оффтопик 9 22.09.2010 07:42
скрол мышкой картинки внутри слоя snk Элементы интерфейса 7 07.09.2010 18:22
Как сделать просмотр большой картинки? greatilya Элементы интерфейса 7 20.05.2010 13:44
Как изменить размер картинки? Mihail Общие вопросы Javascript 1 25.10.2009 13:42
Как "переключать" картинки в меню навигации? KirTer Элементы интерфейса 1 22.06.2009 11:49