3

我创建了一个漫画网站http://www.hittingtreeswithsticks.com/,如果您单击漫画缩略图,它将带您进入图像的全尺寸(viewimage.php 模板)。

在 viewimage.php 模板上,我使用 javascript/jquery 循环浏览存储在数组中的图像,这样用户就不必每次都重新加载页面。

这似乎有两个问题:

1)我还想添加一个“喜欢/不喜欢”功能......这样您就可以为每张图片投票,以及一个 Facebook 喜欢按钮(这样用户就可以喜欢每张图片)。目前,由于 jQuery 在图像中循环,它不会更新您单击的图像的 id。(在这张图片中,如果我按右箭头键进入下一步,id 应该增加到 35)。

在此处输入图像描述

在此处输入图像描述

2) 最终我想从广告收入中赚钱。消息来源说,如果我使用 jQuery 获取下一张图片,而不是重新加载页面,广告将不会被刷新……而且我会产生更少的广告收入。

所以,我的问题是...... Jquery 是否可以处理这些问题,或者我是否必须刷新页面以增加 ID 并刷新广告?

谢谢!

编辑:我添加了

window.history.pushState(null, null, 'http://www.hittingtreeswithsticks.com/?action=viewimage&site=comics&id=imgIndex');

代码(这似乎不起作用,实际上阻止了“下一个”代码的工作)

    $("#next").click(function() {
        imgIndex++;
            if (imgIndex > imgArray.length-1) 
            {
                imgIndex = 0;
            }
            img.src = imgArray[imgIndex];
            window.history.pushState(null, null, 'http://www.hittingtreeswithsticks.com/?action=viewimage&site=comics&id=imgIndex');
    });

更新:

错误:

在此处输入图像描述

4

1 回答 1

2

关于您的第一个问题,您可以使用pushState()。在更换图片的同时,也可以更新 url。这会添加一个新的历史记录条目并替换浏览器中的 url,但实际上并不会重新加载页面。例子:

window.history.pushState(null, null, 'http://www.hittingtreeswithsticks.com/?action=viewimage&site=comics&id=N&cat=&title=TITLE');

(只需在此处适当地替换 N 和 TITLE 即可)。这样就解决了。请注意,这不是 jQuery 功能,而是原生 javascript。

关于问题 2,这取决于您的广告是如何设置的,但这可能是它们不会自动重新加载的情况。在大多数情况下,您也可以通过 javascript 重新加载广告,但具体取决于您的广告投放方式的详细信息;您可能应该发布一个单独的问题,询问如何通过 javascript 异步加载广告,并详细说明您的广告服务器是如何工作的。

于 2012-11-25T15:55:53.083 回答