2012-06-06 97 views
3
我使用jcrop與我的aspx頁面

IE問題JCrop

<script type="text/javascript" src="../../Scripts/js/jquery.Jcrop.min.js"></script> 
<link rel="Stylesheet" href="../../Scripts/css/jquery.Jcrop.min.css" /> 

這裏是我的JCrop聲明:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#' + options.ImageID).Jcrop({ 
      onChange: function (coords) { 
       $('#' + options.HiddenID).val(coords.x + ',' + coords.y + ',' + coords.w + ',' + coords.h); 
      }, 
      aspectRatio: 1 
     }); 
    }); 
</script> 

這裏是我的.NET圖像:

<asp:Image runat="server" ID="PhotoPreviewImage" /> 

options變量是在後面的代碼中創建的一個對象,用於將PhotoPreviewImage的ClientID傳遞給JS。

這對Chrome很有用,它在IE9中不起作用(我甚至沒有得到十字線)。

我使用jquery.Jcrop.min.js v0.9.10(編譯:20120429)和jQuery V1.7.1 jquery.com

我怎樣才能使IE這項工作?

+0

你會得到任何javascript錯誤嗎? – Aristos

+0

@Aristos - 我看不到任何東西:( – Liath

回答

3

我在過去的IE瀏覽器中遇到過一些問題。我通過向選項對象添加「onSelect」和「onRelease」事件來解決此問題。我不知道這是否會對你有幫助,但值得一試。我的代碼是這樣的:

<asp:Image ID="cropbox" runat="server" ImageUrl="Assets/images/blank.gif" /> 

的Javascript:

<script> 
$(document).ready(function() { 
    var api = $.Jcrop('#cropbox', { 
     aspectRatio: 1, 
     onSelect: update, 
     onChange: update, 
     onRelease: update 
    }); 
}); 

function update(c) { 
    //Store coords here 
} 
</script> 
+0

我不得不修改這個以傳遞ClientID而不是.NET Image控件的ID,但除此之外它效果很好!編輯添加這個似乎是在Chrome中打破它,但我可以解決這個問題! – Liath

+1

這讓我在IE中工作,但打破了Safari。我最終不得不檢測瀏覽器並使用API​​方法(與上面類似,唯一的區別是我將所有選項移動到單獨的功能)的IE和[正常方式](http://deepliquid.com/content/Jcrop_Manual.html)所有其他瀏覽器...似乎在所有瀏覽器中一致工作 – MikeSmithDev

+0

+1。good answer –

7

我最後不得不檢測IE和使用的兩種格式之一初始化:

 var is_msie = /msie/.test(navigator.userAgent.toLowerCase()); 
     var jcrop_obj; 

     if (is_msie) { 
      jcrop_obj = jQuery.Jcrop('#img', { 
       onSelect: jcrop_onEndCrop, 
       minSize: [ 20, 20 ], 
       setSelect: [ x, y, x2, y2 ], 
       allowSelect: false 
      }); 
     } 
     else { 
      jQuery('#img').Jcrop({ 
       onSelect: jcrop_onEndCrop, 
       minSize: [ 20, 20 ], 
       setSelect: [ x, y, x2, y2 ], 
       allowSelect: false 
      },function(){jcrop_obj = this;}); 
     } 
+1

Just had放下評論,5小時搞清楚爲什麼jCrop只在IE瀏覽器刷新幾次後才初始化,並且這固定了所有:) –

+0

你,先生,是英雄。 但爲什麼檢查瀏覽器,而不是隻使用IE版本? –

+0

@ThomasStock:IE版本無法在Chrome上使用。 –

-1

這絕對固定了IE 10兼容模式的初始化。

+1

不知道你的答案意味着什麼。 –