1

画像のキャプションなどのJSONフィードを出力するGalleryCMSを使用しています。これを別のスクリプトとして使用してJSONを解析します。

(function( $ ) {
  $.fn.gallerycms = function( options ) {

    var settings = $.extend({
      url : '',
      theme : '',
    }, options);

    var $this = $(this);

    return this.each(function() {

      if (settings.url.indexOf('/myfeed/') > -1) {
        alert('Only album feeds are supported by Galleria.')
      } else if (settings.url.indexOf('/feed/') > -1) {
        parseAlbum();
      }

    });

    function parseAlbum() {  
      $.getJSON(settings.url, 
                function(data) {
        $.each(data.images, function(key, image) {
          $($this).append('img src=<a href="' + image.url + '"><img data-title="' + image.caption + '" src="' + image.thumb + '" /></a>');
        });

        Galleria.loadTheme(settings.theme);
        Galleria.run($this);
      });
    }

  };
})( jQuery );

htmlドキュメント内で、これを使用してスクリプトを設定します。

$(document).ready(function() {
      $('#galleria').gallerycms({
        url : 'http://www.paulgubaphoto.com/GalleryCMS/index.php/api/feed/json/e2b740b7-9ab1-11e1-ae3d-0022192d6244',
        theme : '/galleria/themes/twelve/galleria.twelve.min.js'
      });

したがって、Chrome、Firefox、Safari、Mozillaで完全に機能しますが、InternetExplorerは好きではありません。あなたはここでそれを見つけることができます:www.paulgubaphoto.com/index-test.html。私はランク初心者ですので、ゆっくりはっきりと入力してください。

ポール

4

1 に答える 1

0

document.ready関数呼び出しで、WebサービスのURLを使用しているgallerycmsを初期化しますhttp://paulgubaphoto.com/GalleryCMS/index.php/api/feed/json/3e346db5-93b0-11e1-ae3d-0022192d6244。ただし、リクエストはから来ていhttp://www.paulgubaphoto.com/index-test.htmlます。IEは「www.paulgubaphoto.com」と「paulgubaphoto.com」を2つの異なるサイトとして認識しています。これは、(少なくともIEでは)Webサービスリクエストが同じオリジンポリシー(オリジン決定ルールを参照)の対象であり、使用する必要があることを意味しますブラウザのアドレスバーのURLのドメインを実際に変更して、WebクエリURLのドメイン部分と一致させると、すべてが機能します(少なくとも私のバージョンのIE9では)。

jsonpを使用する必要がないようにするには、gallerycmsWebサービスのURLを次のように定義する必要があります。

$(document).ready(function() {
      $('#galleria').gallerycms({
        url : 'http://' + document.domain + '/GalleryCMS/index.php/api/feed/json/3e346db5-93b0-11e1-ae3d-0022192d6244',
        theme : '/galleria/themes/twelve/galleria.twelve.min.js'
      });

そうすれば、そのような問題について心配する必要はありません。

于 2012-06-05T12:11:07.427 に答える