5

アップロードした画像がサイトに表示されるように実装しました。画像が正しくアップロードされていないということは、その上のエラー画像を置き換えることを意味しますか?サイトをロードすると、問題が発生error image not defineします。ライトボックスはchromeとfirefoxの両方でロードされますが、IEではロードされず、黒い背景のみが表示されます。エラー画像を表示し、Webサービスから画像をアップロードするための私のコードは次のとおりです。

PHPコード:

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>

機能は次のとおりです。

  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();
    }
4

1 に答える 1

1

最後に、ライトボックスをIE 7とIE 8の両方で動作させる問題を解決しました。

スクリプト ファイル google api http://www.google.com/jsapiと google.load("jquery", "1");を含めます。google.load("jquery", "1");

これは、私のlighbox.jsファイルと他のライブラリファイルと競合する問題です。その後、そのスクリプトを削除し、新しいスクリプトJsライブラリhttps://ajax.googleapis.com/ajax/libs/jquery/1.8を追加しました。 1/jquery.min.js

そして、すべてのスクリプトの $ 記号を jQuery に変更し、ライトボックスを IE ブラウザとすべてのブラウザで機能するようにしました

于 2012-12-14T14:16:33.973 に答える