1

我正在使用 GalleryCMS,它为图像标题等输出 JSON 提要。使用它作为单独的脚本来解析 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 完美配合,但不喜欢 Internet Explorer。你可以在这里找到它:www.paulgubaphoto.com/index-test.html。我是初学者,所以请慢慢清楚地输入。

保罗

4

1 回答 1

0

在您的 document.ready 函数调用中初始化 gallerycms 您正在使用 Web 服务 URL 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 服务请求受制于相同的来源策略(请参阅来源确定规则)并且需要使用jsonp 如果你真的在浏览器地址栏中更改 URL 的域以匹配 Web 查询 URL 的域部分,那么一切正常(至少在我的 IE9 版本上)。

为了避免需要使用 jsonp,您应该尝试如下定义您的 gallerycms Web 服务 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 回答