0

私は現在、ユーザーが単語を送信したときに画像を表示できるクロム拡張機能を開発しています。AJAX と JQUERY を使用して画像を取得します。

popup 内に画像を表示するのに問題があります。実際、通常の HTML ページでは機能しますが、ポップアップでは機能しません。

テストしたい場合: http://algec.iut-blagnac.fr/~groupe6pjt/testAjax/pageHTML.html .

ポップアップに画像を表示しようとすると、JavaScript コンソールに次のエラーが表示されます。

リソース chrome-extension の読み込みに失敗しました://pmbnmemdpheopedlikgmdeegebojkoji/chamoix.png

そして、写真の代わりにひび割れのある小さな画像アイコンがあります。

写真のパスの問題ではないと思います。これは私たちのページ (上記のリンク) で動作しているためです。

これが私のコードです:

1. more_com.php (サーバー上の php ファイル)

<?php

    print "<p>Je suis un fichier php 2.0 !</p>";

        $conn = mysql_connect("localhost", "groupe6pjt", "bfjrs2012") or die ("Connexion impossible");
        $base="groupe6pjt";
        mysql_select_db("$base") or die ("base inconnue"); 

        $requete2 = "select imgSigne from signe where idSigne=10;";
        $resultat2 = mysql_query($requete2) or die ("requete2 impossible");
        while($tab = mysql_fetch_array($resultat2))
        {
            echo $tab[0];
            echo "<br/><img  src=\"chamoix.png\" />";
        }
?>

2. popup.html

<!DOCTYPE html PUBLIC>
<html>
<head>
<link rel="stylesheet" href="css/bootstrap.css" type="text/css" media="screen">
<title>Techniques AJAX - XMLHttpRequest</title>
<script src="popup.js"></script>
</head>
<body>

<div id="bandeau">
<h4 style="color : white;">AIPS - Traduction LSF</h4>
</div>

<div id="obtenirTexte" class="well well-large">
<p><b>1)</b> Obtenir le texte surligné sur la page : </p>
    <form class="form-search">
    <div class="input-append">
        <input class="span2 search-query" name="text" style="height : 30px; width : 175px;" type="text" id="text"/><button id="effacer" class="btn btn-primary" name="effacer" style="height : 30px;" title="Effacer le mot"><img src="effacer.png" alt="Erreur"/></button>
    </div><br/><br/>
        <button id="submit" class="btn" title="1) Texte">Obtenir le texte</button>
    </form>
</div>

<div id="obtenirImage" class="well well-large">

    <div id="commentaires">
    <p><b>2)</b> Obtenir l'image correspondante : </p>
    </div>

    <form>
        <input id="more_com" class="btn" type="button" value="Obtenir l'image" title="2) Image"/>
    </form>

    <div id="message">
        <!-- PHP return here ! -->
    </div>

</div>
<!-- As you can see with Chrome you can't put script directly in the htlm code so I create a file with my function : fonction.js -->
<script language="JavaScript" type="text/javascript" src="jquery.js"></script>
<script language="JavaScript" type="text/javascript" src="fonction.js"></script>
<script language="JavaScript" type="text/javascript" src="fonction2.js"></script>
<script language="JavaScript" type="text/javascript" src="popup.js"></script>
</body>
</html>

3.fonction.js

$(document).ready(function(){

        $("#more_com").click(function(){                                                                      //Cette fonction se déclenche quand on clique sur le bouton d'id "more_com" (ici "Obtenir l'image")
            var variableTest=$.ajax({
                 url : "http://algec.iut-blagnac.fr/~groupe6pjt/testAjax/more_com.php",      //Ca c'est la page PHP qu'on va devoir modifier pour qu'à la reception du mot elle affiche l'image correspondante (Ne pas changer !)
                 type : "GET",                                                                                                                                                                                           //On garde GET car on veut récupérer une donnée en envoyant des infos ( != POST )
                 //data : 'motRecher=' + COUCOU;      // *****A MODIFIER*****                  //On va devoir utiliser ce champ pour envoyer le mot surligné vers la page PHP "more_com.php" 
                 dataType : "html",                                                                                                                                                                              //Le type de données renvoyé par la page PHP (ici : c'est du html que la page renvoie)
            });

            variableTest.done(function(data, textStatus, jqXHR){                             //Si on atteind le fichier alors on affiche ce que retourne "more_com.php" (ici il retourne "Je suis un fichier PHP !")
              $("#message").html(data);                                                                                                                                     //Permet l'affichage du fichier PHP
            });

            variableTest.fail(function(jqXHR, textStatus){                                            //Si on atteind pas le fichier ...
                $("#message").html("<p>Erreur</p>");                                                   //...erreur
            });
        });
    });

Chromeがポップアップなどに画像を表示できないと思います!

4

1 に答える 1

0

あなたが抱えている問題は、画像がそのように定義されていることです

<img src="./chamoix.png"> 

この相対パスは次のように解決されます

http://algec.iut-blagnac.fr/~groupe6pjt/testAjax/chamoix.png

Webページ上で解決しようとしますが、

chrome-extension://pmbnmemdpheopedlikgmdeegebojkoji/chamoix.png

拡張機能で。絶対パスまたはを使用しreplace()て、正しいアドレスを指すようにしてください。

于 2013-03-14T18:07:55.440 に答える