2013-03-04 45 views
0

我使用插件的javascript或兩年的查詢編程。jQuery的TextAreaExpander插件:知道瀏覽器的錯誤

現在我用我的插件打開了我的項目來擴展textarea。

我對這句話有新的錯誤(與Firebug分析)。 類型錯誤:$ .browser未定義

var hCheck = !($.browser.msie || $.browser.opera); 

爲什麼?

信息

/** 
* TextAreaExpander plugin for jQuery 
* v1.0 
* Expands or contracts a textarea height depending on the 
* quatity of content entered by the user in the box. 
* 
* By Craig Buckler, Optimalworks.net 
* 
* As featured on SitePoint.com: 
* http://www.sitepoint.com/blogs/2009/07/29/build-auto-expanding-textarea-1/ 
* 
* Please use as you wish at your own risk. 
*/ 
/** 
* Usage: 
* 
* From JavaScript, use: 
* $(<node>).TextAreaExpander(<minHeight>, <maxHeight>); 
* where: 
* <node> is the DOM node selector, e.g. "textarea" 
* <minHeight> is the minimum textarea height in pixels (optional) 
* <maxHeight> is the maximum textarea height in pixels (optional) 
* 
* Alternatively, in you HTML: 
* Assign a class of "expand" to any <textarea> tag. 
* e.g. <textarea name="textarea1" rows="3" cols="40" class="expand"></textarea> 
* 
* Or assign a class of "expandMIN-MAX" to set the <textarea> minimum and maximum height. 
* e.g. <textarea name="textarea1" rows="3" cols="40" class="expand50-200"></textarea> 
* The textarea will use an appropriate height between 50 and 200 pixels. 
*/ 
(function($) { 
// jQuery plugin definition 
$.fn.TextAreaExpander = function(minHeight=21, maxHeight) { 
var hCheck = !($.browser.msie || $.browser.opera); 
// resize a textarea 
function ResizeTextarea(e) { 
// event or initialize element? 
e = e.target || e; 
// find content length and box width 
var vlen = e.value.length, ewidth = e.offsetWidth; 
if (vlen != e.valLength || ewidth != e.boxWidth) { 
if (hCheck && (vlen < e.valLength || ewidth != e.boxWidth)) e.style.height = "0px"; 
var h = Math.max(e.expandMin, Math.min(e.scrollHeight, e.expandMax))+2; 
e.style.overflow = (e.scrollHeight > h ? "auto" : "hidden"); 
e.style.height = h + "px"; 
e.valLength = vlen; 
e.boxWidth = ewidth; 
} 
return true; 
}; 
// initialize 
this.each(function() { 
// is a textarea? 
if (this.nodeName.toLowerCase() != "textarea") return; 
// set height restrictions 
var p = this.className.match(/expand(\d+)\-*(\d+)*/i); 
this.expandMin = minHeight || (p ? parseInt('0'+p[1], 10) : 0); 
this.expandMax = maxHeight || (p ? parseInt('0'+p[2], 10) : 99999); 
// initial resize 
ResizeTextarea(this); 
// zero vertical padding and add events 
if (!this.Initialized) { 
this.Initialized = true; 
$(this).css("padding-top", 0).css("padding-bottom", 0); 
$(this).bind("keyup", ResizeTextarea).bind("focus", ResizeTextarea); 
} 
}); 
return this; 
}; 
})(jQuery); 
// initialize all expanding textareas 
jQuery(document).ready(function() { 
jQuery("textarea[class*=expand]").TextAreaExpander(); 
}) 
+0

你確定'jQuery'被加載? – coolguy 2013-03-04 11:22:16

+0

jQuery的'瀏覽器'屬性已被棄用。請參閱http://stackoverflow.com/questions/9638247/is-jquery-browser-deprecated – 2013-03-04 11:22:47

+0

您使用的是哪個版本的jquery? $ .browser已從1.9中刪除。請點擊此處:http://api.jquery.com/jQuery.browser/ – ryadavilli 2013-03-04 11:23:07

回答

1

我解決了我的問題,我替換了這個代碼:

(function($) { 
    // jQuery plugin definition 
    $.fn.TextAreaExpander = function(minHeight, maxHeight) { 
     minHeight=21; 
    var nAgt=navigator.userAgent; 
    var verOffset; 
    var hCheck = !(jQuery.support.boxModel || (verOffset=nAgt.indexOf("Opera"))!=-1); 
     // var hCheck = !($.browser.msie || $.browser.opera); 
     // resize a textarea 

在(原始庫)

(function($) { 
// jQuery plugin definition 
$.fn.TextAreaExpander = function(minHeight=21, maxHeight) { 
var hCheck = !($.browser.msie || $.browser.opera); 

這是一個解決方案。

+0

Javascript錯誤:nAgt沒有定義..我該怎麼辦? – 2013-07-03 08:13:27

+0

嗨,對於延遲,當你有這種情況下,並與哪個瀏覽器對不起? (歌劇我認爲你使用?) – 2013-07-11 12:26:41

+0

這是Chrome無法正常工作。我解決了從沒有刪除它的jQuery版本複製$ .browser。然後將它合併到版本1.9 – 2013-07-11 13:25:31

1

您使用jQuery的哪個版本? jQuery.browser已過時,jQuery的1.3和1.9的jQuery去除

+0

\t 如何協調工作這句話? – 2013-03-04 11:27:15

+1

您正在使用的jQuery版本仍支持'jQuery.browser',請參閱http://jsbin.com/azebuf/1獲取演示。請嘗試重現上http://jsbin.com或http://jsfiddle.net – ybo 2013-03-04 11:39:52

+0

即您的問題:未定義 歌劇:未定義 Mozilla的:真正的 – 2013-03-04 11:48:09

1

$ .browser已經從jQuery的1.9

去除

使用jQuery遷移到修復你的代碼的時刻:

http://blog.jquery.com/2013/02/16/jquery-migrate-1-1-1-released/

然後使用功能檢測重構

+0

我有新的錯誤,並用這個替換舊的我的圖書館的查詢twolibrary

  • 11. IE瀏覽器中的Jquery Malsup表單插件錯誤文件上傳
  • 12. 瀏覽器插件?
  • 13. 的XPages瀏覽器錯誤
  • 14. 的Silverlight瀏覽器控件InvokeScript錯誤
  • 15. Chrome瀏覽器選項JQuery插件
  • 16. 谷歌瀏覽器插件中的'onLaunched'錯誤
  • 17. 瀏覽器/ jQuery代理錯誤
  • 18. jQuery和IE7跨瀏覽器錯誤
  • 19. 基於java的瀏覽器中的瀏覽器插件
  • 20. 的JavaScript:跨瀏覽器的「瀏覽器插件」檢測
  • 21. jQuery插件「跨瀏覽器Html5的黑色和白色的jQuery插件中的」
  • 22. JQuery的:任何瀏覽div的插件
  • 23. jQuery代碼錯誤在IE瀏覽器,但沒有其他的瀏覽器
  • 24. 來自eclipse的項目瀏覽器上的未知錯誤
  • 25. 瀏覽器插件中的Directx控件
  • 26. 怎麼知道的jQuery插件
  • 27. 瀏覽器插件開發
  • 28. Android瀏覽器插件
  • 29. 插件Android瀏覽器
  • 30. 跨瀏覽器插件