0

我必须使用 django 网页。

在 html 中,我将外部图像链接分配给 img src 标签。

但是,403 禁止错误并且不显示图像。

当我将图像外部链接粘贴到浏览器地址时,图像显示。

我认为..这是推荐人检查。所以我在Change the http referer in javascript中使用了 ReferrerKiller.js 。

显示第一张图片。但其他不是。

我使用 chrome 开发者工具检查网络。

在此处输入图像描述

其他图像已取消。我不知道。

我想听听关于这个问题的任何想法。.Referer 检查以及为什么只显示第一张图片?其他没有?

在 home.html 下面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
{% load staticfiles %}

<html> 
<head>
<meta charset="utf-8" />
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<script type="text/javascript" src="{% static "js/ReferrerKiller.js" %}"></script>
<title>island</title> 
</head>
<body> 
<h1> nanpa </h1> 
<br/>

{% for entrySummary in entrySummaryList %} 
    title : 
    <a href="{{entrySummary.entry_link}}">{{ entrySummary.entry_title }}</a>
    {{ entrySummary.entry_pub_date }} <br/>

    description : {{ entrySummary.entry_description }} <br/>
    image : <span id="image_kill_referrer"></span> 
    <!-- <img src= ("{{ entrySummary.entry_representaion_img }}"/> -->
    <script>
    document.getElementById('image_kill_referrer').innerHTML = ReferrerKiller.imageHtml("{{
    entrySummary.entry_representaion_img }}");
    </script>   
{% endfor %}   
</body> 
</html>
4

1 回答 1

1

document.getElementById()只返回一个项目(第一个项目,因为您代码中的所有图像都具有相同的 id)。使用其他方法,例如document.getElementsByClassName.

试试下面的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
{% load staticfiles %}

<html>
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
        <script type="text/javascript" src="{% static "js/ReferrerKiller.js" %}"></script>
        <title>island</title> 
    </head>

    <body> 
        <h1> nanpa </h1>
        <br/>

    {% for entrySummary in entrySummaryList %} 
        title :
        <a href="{{entrySummary.entry_link}}">{{ entrySummary.entry_title }}</a>
        {{ entrySummary.entry_pub_date }} <br/>

        description : {{ entrySummary.entry_description }} <br/>
        image : <span class="image_kill_referrer"></span>
    {% endfor %} 
        <script>
        var i, images = document.getElementsByClassName('image_kill_referrer');
        var urls = [
    {% for entrySummary in entrySummaryList %} 
            "{{ entrySummary.entry_representaion_img }}",
    {% endfor %}
            "DUMMY"
        ];
        for (i = 0; i < images.length; i++) {
            images[i].innerHTML = ReferrerKiller.imageHtml(urls[i]);
        }
        </script>
    </body>
</html>

或者,为每个图像使用不同的 id:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
{% load staticfiles %}
<html> 
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
        <script type="text/javascript" src="{% static "js/ReferrerKiller.js" %}"></script>
        <title>island</title> 
    </head>
    <body> 
        <h1> nanpa </h1> 
        <br/>

    {% for entrySummary in entrySummaryList %} 
        title : 
        <a href="{{entrySummary.entry_link}}">{{ entrySummary.entry_title }}</a>
        {{ entrySummary.entry_pub_date }} <br/>

        description : {{ entrySummary.entry_description }} <br/>
        image : <span id="image_kill_referrer{{ forloop.counter }}"></span> 
        <script>
        document.getElementById('image_kill_referrer{{ forloop.counter }}').innerHTML = ReferrerKiller.imageHtml("{{
        entrySummary.entry_representaion_img }}");
        </script>   
    {% endfor %}   
    </body> 
</html>
于 2013-07-08T06:16:34.690 回答