2012-12-13 4 views
5

Ich bin implementiert die hochgeladenen Bilder werden auf der Website angezeigt. Für das Bild nicht korrekt hochgeladen bedeutet ich ersetze das Fehlerbild auf das? Wenn ich die Seite lade, sehe ich das Problem error image not define, und für den Leuchtkasten lädt in Chrom und Firefox , aber es lädt nicht in IE, nur den schwarzen Hintergrund bildend. Hier ist mein Code zum Anzeigen des Fehlerbildes und Hochladen des Bildes von den Webservices.Mit Blick auf ein Problem Objekt erforderlich Fehler in IE 8 und Lichtkasten funktioniert nicht in IE 8 und IE 7 allein

Php-Code:

foreach(object_2_array($ans->answerDocumentList) as $document){ 
    if ($document->documentHttpUrl!= ''): 
     $document_name_explode = explode('.',$document->documentName); 
     $file_type = trim($document_name_explode[1]);?> 

    <div class="documentation_class" <?php if($k%2==0){?> style="float:none;margin-left:0px;" <?php }else{ ?> style="float:left;"<?php } ?>> 
     <?php if(($file_type!="") &&($file_type=="png" || $file_type=="jpg" || $file_type=="jpeg" || $file_type=="gif")){ ?> 
     <a rel="lightbox[document]" href="<?php echo stripcslashes($document->documentHttpUrl); ?>"> 
      <img alt="<?php echo stripcslashes($document->documentName); ?>" src="<?php echo APP_FORUM_URL;?>/images/ajax-load.gif" dataimage="<?php echo stripcslashes($document->documentHttpUrl); ?>" class="document_image" style="max-width:644px !important;" onerror='errorImage("<?php echo RESOURCE_URL_BASE;?>",this);' border="0" /> 
     </a> 
     <br/> 
     <?php } else{ 
      echo $document->documentName; 
     } ?> 

     <div class="question_float_left download_link"> 
      <a href="<?php echo stripcslashes($document->documentHttpUrl); ?>">Click here to download this file</a> 
     </div> 
     <?php endif; ?> 
     <input type="hidden" value="<?php echo $document->documentId; ?>" class="list_document_id"/> 
     <input type="hidden" value="<?php echo $document->documentName; ?>" class="list_document_title"/> 
    </div> 
    <?php $k++; }?> 
<script> 

Funktion ist:

function errorImage(url,ctrl){ 
     ctrl.style.border='solid 1px black'; 
     ctrl.src='<?php echo APP_FORUM_URL; ?>images/broken-image.jpg'; 
     $(ctrl).parent().parent().find('.download_link').hide(); 
    } 
+0

Sie verwenden 'stripcslashes 'hier auf eine sehr, sehr seltsame Art und Weise. Es und seine Cousins ​​"addslashes" und "stripslashes" sind ein * Code-Geruch *. Sie werden oft missbraucht, wenn Datenbank-Escaping gehört, aber dieser Fall ist nur * seltsam *. Sie machen * nichts * für dich hier. Ich nehme an, dass Sie wirklich ['htmlspecialchars'] (http://php.net/htmlspecialchars) verwenden wollten, da dies im Kontext das Richtige wäre. – Charles

Antwort

1

Schließlich löste ich mein Problem, das ich die Lightbox machen arbeitete auf dem beide IE 7 und IE 8,

Ich schließe die Skriptdatei google api http://www.google.com/jsapi und google.load ("jquery", "1"); google.load ("jquery", "1");

im Header.php Dieses Problem, das Konflikt meine lighbox.js-Datei und andere Bibliotheksdateien, dann habe ich das Skript entfernt und hinzugefügt, um das neue Skript Js Bibliothek https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js

Und ich geändert alle meine Skript $ Symbol zu jQuery jetzt mache ich die Lightbox zu arbeiten, in IE Browser und auch in allen Browser