Изображение SRC от URL? - PullRequest
       11

Изображение SRC от URL?

0 голосов
/ 21 января 2012

на моем веб-сайте я использую функцию ниже для навигации по изображениям. (http://jsut4fun.site40.net/2.html) функция добавляет 1 к URL, чтобы перейти на следующую страницу. Как вы можете видеть, я должен переименовывать каждую веб-страницу и изображениеЗатем я должен изменить код веб-страницы для каждого номера изображения. Есть ли какой-либо простой способ сохранить номер из URL-адреса в src изображения, чтобы мне не пришлось менять код? Обычно у вас есть какие-либо идеичто может помочь мне сделать это лучше? Я все еще нуб Javascript:)

<img src="Images/100.jpg">     
<script>
        var url = location.href;
        function nextImage() {
            return(url.replace(/(\d+)(\.html)$/, function(str, p1, p2) {
                return((Number(p1) + 1) + p2);
            }));
        }
        function prevImage() {
            return(url.replace(/(\d+)(\.html)$/, function(str, p1, p2) {
                return((Number(p1) - 1) + p2);
            }));
        }
        </script>
          <a href="javascript: window.location.href = prevImage();"> <img border="0" src="Assets/Left.png" /></a>
          <a href="javascript: window.location.href = nextImage();"> <img border="0" src="Assets/Right.png"/></a>

Ответы [ 3 ]

1 голос
/ 21 января 2012

Маан, я думаю, теперь я понимаю, что ты хочешь делать. Вы хотите иметь возможность сбросить src изображения на всех ваших пронумерованных страницах без необходимости изменять его вручную. Это выполнимо с Javascript, хотя я не уверен, что это строго рекомендуется, потому что это означает, что изображение будет неправильным для браузеров, у которых не включен JS. Это очень необычный случай, но он может включать в себя Googlebot - поэтому, если важно, чтобы изображение было правильным для целей SEO, у вас, вероятно, нет другого выбора, кроме как изменить все имена файлов вашего изображения.

Для чего это стоит, этот JS должен делать то, что вы хотите.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>

    $(document).ready(function () {

        var currentPage = window.location.href.split('/');
        var currentNum = currentPage[3].split('.')[0];
        $('img').attr('src', 'Images/' + currentNum + '.jpg');

        $('#prev').click(function () {
            move(-1);
        });

        $('#next').click(function () {
            move(1);
        });

        function move(n) {
            window.location.href = Number(currentNum) + Number(n) + '.html';
        }

    });

</script>

Этот бит включает JQuery на вашей странице

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

Бит внутри $(document).ready(function () { ... } запускается, когда страница готова к отображению, обычно перед загрузкой.

var currentPage = window.location.href.split('/'); получает текущий URL страницы и разбивает его на каждый символ. Эта строка создает массив, который содержит части URL. Если ваш URL-адрес http://jsut4fun.site40.net/5.html,, «5.html» будет четвертой частью, которая находится в позиции индекса [3] массива.

var currentNum = currentPage[3].split('.')[0]; получает четвертую часть URL и разбивает ее на «.» Это дает нам номер страницы.

$('center img').attr('src', 'Images/' + currentNum + '.jpg'); сбрасывает атрибут src вашего основного изображения в правильный URL-адрес страницы. center img выбирает любое изображение, являющееся дочерним по отношению к элементу center.

Вы можете сохранить существующие ссылки и функции prevImage () и nextImage () для перемещения между страницами, но если вы хотите сделать это и с JQuery, вы можете сделать это с битом, который говорит

$('#prev').click(function () {
    move(-1);
});

$('#next').click(function () {
    move(1);
});

function move(n) {
    window.location.href = Number(currentNum) + Number(n) + '.htm';
}

В этом примере предполагается, что ссылки имеют идентификаторы "prev" и "next". Должно быть достаточно просто добавить идентификаторы к вашим текущим ссылкам на каждой странице с помощью глобального поиска и замены.

Надеюсь, это поможет!

1 голос
/ 21 января 2012

используйте jquery
затем выберите изображение с помощью $("img") или $("#Id_OF_Img_Tag") затем просто измените значение $("img").attr("src").
увеличивать или уменьшать было бы просто, как

0 голосов
/ 21 января 2012

Вы бы использовали PHP для чего-то подобного.Я не уверен, что именно вы пытаетесь сделать.

edit:

Я написал для вас простую страницу php.Сохраните его как «index.php» и поместите в ваш public_html.Мне интересно посмотреть, работает ли он:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="just 4 fun, funny, comics, image, photo, humor, joke, pics, picture, fail, epic, fun" />
<title>Just 4 Fun</title>
<style type="text/css">
#Thewholewebsite {
    left:357px;
    top:77px;
    width:1080px;
    height:2000px;
    z-index:1;
    margin-top: 0px;
    margin-right: auto;
    margin-left: auto;
    background-color: #DDD;
    background-image: url(Assets/ContentBC.png);
}
.Bottomad {
    height: 60px;
    width: 468px;
    margin-right: auto;
    margin-left: auto;
}
.share {
    height: 60px;
    width: 714px;
    margin-right: auto;
    margin-left: auto;
}
.Content {
    float: left;
    height: 1850px;
    width: 714px;
    margin-top: 20px;
    margin-left: 15px;
}
.Facebookcomments {
    height: 1000px;
    width: 714px;
}
.Sidead {
    float: right;
    height: 280px;
    width: 336px;
    margin-top: 20px;
    margin-right: 15px;
}
.Facebooklikebox {
    float: right;
    height: 600px;
    width: 336px;
    margin-top: 20px;
    margin-right: 15px;
}
.Header {
    background-image: url(Assets/HeaderLogo.png);
    height: 90px;
    width: 335px;
    margin-top: 5px;
    margin-left: 10px;
    float: left;
}
.Headerad {
    background-color: #000;
    height: 90px;
    width: 728px;
    margin-right: 6px;
    float: right;
    margin-top: 5px;
}
.Facebookcomments {
    height: 1000px;
    width: 714px;
}
</style>
<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-28177073-1']);
  _gaq.push(['_setDomainName', '.site40.net']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>
</head>

<body background="Assets/MainBC.png">
<div id="Thewholewebsite">
<div class="Header"></div>
<div class="Headerad"></div>
<div class="Content">
<center>
<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=324524777119";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>


<br/>
<br/>
    <br/>
    <br/>
    <?PHP 
    $prev=$next=true;
    if(isset($_GET['image'])){
        $imgnum = $_GET['image'];
        if($imgnum==1){
            $prev=false;
        }
    }
    else{
        $imgnum=1;
        $prev=false;
    }
    echo "Root: ".$_SERVER['DOCUMENT_ROOT'];
    if(!file_exists($_SERVER['DOCUMENT_ROOT'].'/public_html/Images/'.$imgnum.'.jpg')){
        $imgnum=1;
        $prev=false;
    }
    if(!file_exists($_SERVER['DOCUMENT_ROOT'].'/Images/'.$imgnum+1 .'.jpg')){
        $next=false;
    }


    ?>
<img src=<?PHP echo "\"Images/".$imgnum.".jpg\"" ?>/>
<br/>
<script>
var url = location.href;
function nextImage() {
    window.location.href = 
}
function prevImage() {
    return(url.replace(/(\d+)(\.html)$/, function(str, p1, p2) {
        return((Number(p1) - 1) + p2);
    }));
}
</script>
<?PHP if($prev){?>
        <a href=<?PHP echo "\"".$_SERVER['DOCUMENT_ROOT'].'/Images/'.$imgnum-1 .'.jpg"' ?>> <img border="0" src="Assets/Left.png" /></a>
    <?PHP } if($next){?>
        <a href=<?PHP echo "\"".$_SERVER['DOCUMENT_ROOT'].'/Images/'.$imgnum+1 .'.jpg"' ?>> <img border="0" src="Assets/Right.png"/></a>
    <?PHP }?>
<br/>
<script type="text/javascript"><!--
google_ad_client = "ca-pub-6477782079941355";
/* Just 4 fun */
google_ad_slot = "0518220826";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

<br/>

<a name="fb_share"></a> 
<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" 
        type="text/javascript">
</script>
<g:plusone></g:plusone>
<script type="text/javascript">
  (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
  })();
</script>
<a href="https://twitter.com/share" class="twitter-share-button">Tweet</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
<br/>
<div class="fb-comments" data-href="http://jsut4fun.site40.net/9.html" data-num-posts="10" data-width="714"></div>
</center>
</div>



<div class="Sidead"><script type="text/javascript"><!--
google_ad_client = "ca-pub-6477782079941355";
/* dam this is funny ads */
google_ad_slot = "7487699411";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<div class="Facebooklikebox">
<div class="fb-like-box" data-href="http://www.facebook.com/pages/Just-For-Fun/301627143220739" data-width="336" data-height="600" data-show-faces="true" data-stream="true" data-header="true"></div></div>
</div>

</div>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...