2012-06-05 83 views
1

我使用GalleryCMS輸出用於圖像字幕等使用這個作爲一個單獨的腳本來分析一個JSON JSON提要:JSON Internet Explorer的問題

(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。我是一名初學者,所以請慢慢打字。

保羅

+1

你在IE中遇到什麼錯誤? – Bergi

+0

IE中有什麼錯誤? – Jashwant

+0

我收到沒有錯誤信息圖像只是不加載或出現。我沒有一臺Windows機器對我來說很難解決問題。我至少使用Adobe瀏覽器實驗室來查看它的加載圖像。 – Gubavision

回答

0

在你的document.ready函數調用初始化您正在使用的Web服務URL http://paulgubaphoto.com/GalleryCMS/index.php/api/feed/json/3e346db5-93b0-11e1-ae3d-0022192d6244 gallerycms。但是請求來自http://www.paulgubaphoto.com/index-test.html。 IE瀏覽器將「www.paulgubaphoto.com和」paulgubaphoto.com「視爲2個不同的網站,這意味着(至少在IE中)您的網絡服務請求受same origin policy(請參閱原始確定規則)的約束,並且需要使用jsonp 。如果你真的在瀏覽器地址欄中更改URL的域名以匹配網絡查詢URL的域部分,一切正常(至少在我的IE9版本上)。

爲了避免需要使用jsonp你應該嘗試定義gallerycms網絡服務的網址如下:

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

這樣,你不必擔心這些問題

+0

很抱歉,將腳本修改爲「mysite.com」我的域之外沒有通話。一切都包含在域中。圖片,GalleryCMS,javascripts,html都在paulgubaphoto.com – Gubavision

+0

如果你用$ .ajax({url:settings.url})替換你的整個$ .getJSON調用。error(function(a,b,c){alert (b +「:」+ c);});'你看到一個警告對話框嗎?如果是這樣,它顯示了什麼? –

+0

因此,在替換其他時腳本不起作用時沒有任何事情發生。雖然不完全確定我是否正確地遵循了你的指示請記住,我是一個完整的初學者,所以我在摸索這一點,也許在同一時間學習。 – Gubavision