繁体   English   中英

使用javascript动态链接html页面

[英]Dynamically linking html pages with javascript

这是为HTML页面存储五个图像的代码,然后该功能用于一次显示这五个图像。

此代码有效,可以滚动五个图像。

我的问题是,是否可以根据特定时间显示的图像指向不同的HTML页面

<script type="text/javascript">
    var curImage = 0;
    var cImages = ['1.jpg','2.jpg','3.jpg','4.jpg','5.jpg'];

    function townHousePics(direction) {
        if (direction == 'next') {
            curImage++;
            if (curImage == 5) {
                curImage = 0;
            }        
        } 
        else 
        {
            curImage--;
            // even reset the counter here when
            // its getting 0
        }
        document.images[0].src = cImages[curImage];
    }
</script>

HTML设置

<a href='' id='my-anchor-name'><img id='my-image-name' src=''/></a>

JavaScript的

<script type="text/javascript">
    var curImage = 0;
    var cImages = [{aHref:'target1.html',imgHref:'1.jpg'},{aHref:'target2.html',imgHref:'2.jpg'},
{aHref:'target3.html',imgHref:'3.jpg'},
{aHref:'target4.html',imgHref:'4.jpg'},
{aHref:'target5.html',imgHref:'5.jpg'}
];
         function townHousePics(direction) {
                     if (direction == 'next') {
                         curImage = (curImage++)%cImages.length ;
                      else {
                         curimage = (curImage--)%cImages.length;
                     }
                     var img = document.getElementById('my-image-name');
                     var anchor = document.getElementById('my-anchor-name')
                     img.src = cImages[curImage].imgHref;
                     anchor.href = cImage[curImage].aHref;
             }
</script>

基于文件名的自动替换

假设您有如下链接:

<a href="1.html" id="viewLarge">View Large</a>

您希望随每个图像动态更改。 当图像2.jpg成为主要内容时,我们将1.html换成2.html。 我们可以将代码的最后一行修改为:

// Updated Source of First Image
document.images[0].src = cImages[curImage];
// Parse Image Number from String
var currentNumber = parseInt( curImage, 10 ); // 2.jpg becomes 2
// Get a reference to our 'viewLarge' link
var ourLink = document.getElementById("viewLarge");
// 1.html becomes 2.html when 2 is the currentNumber;
ourLink.href = ourLink.href.replace( /^([0-9]+)/, currentNumber );

请注意,虽然这有效,但它限制了你的1.jpg1.html 这可能是不合需要的。 您可能希望1.jpgCityLoft.html一起使用。 如果是这种情况,您需要将图像与cImages对象中的正确URL相关联:

使用对象存储相关数据

var cImages = [{image: '1.jpg', page: 'cityLoft.html'},
               {image: '2.jpg', page: 'townhome.html'}];

完成此更改后,您只需要恢复代码中的引用。 例如,我们将更改以下内容:

document.images[0].src = cImages[curImage];

对此:

document.images[0].src = cImages[curImage].image;

我们还需要更新链接到相关页面的代码:

document.getElementById("viewLarge").href = cImages[curImage].page;

而已!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM