2013年2月26日 星期二

JavaScpirt ... 8 位元... 搞了我三天...

靠~ 這啥~~

原來是這個 BUG...搞了我三天.... 我暈 >"<

( JavaScpirt 不能直接傳遞以 0 為開頭的文字,不然會被自動判定成為 8 位元..... )

看來我程式寫的太少了,一直都沒遇到這個問題 >"<...到現在才遇到...



========================================================

參考資料:http://hi.baidu.com/mqcezrvislahqxr/item/20abf342df938d0ee8350429



!!!JavaScript中0開頭的字符串問題

如在一個jsp頁面中要把一個0開頭的java字符串變量傳給另一個頁面的情形:
一 種解決方法是採用控件的方法,即在當前頁面定義一個隱藏的HTML控件(如label控件)將其文本(label的為innerText屬性)設為要傳遞 的字符串變量,例如:<label id=lable1 style="display:none"><%=str%></label>,然後就可以再JavaScript中用 document.getElementById("lable1").toString()獲取即可。該方法雖然行得通,但是需要額外的控件,而且若該 頁面有回傳的操作,該方法還可能出現定義的那個隱藏控件消失的問題。
另外一種比較好的方法是採用JavaScript的類型轉換。這個就很 容易出錯了。以0開頭的變量在JavaScript看來是把它當成8進制的整數,如012就是代表10進制中的10,String(012) 的結果就變成了10。有的人可能覺得用var str=「」+012就好,但是這樣結果仍然為12。最終的解決辦法是在String()的參數中用「」將以0開頭的字符串包含起來。如java變量要傳 給JavaScript,可以用var str=String("<%=str%>")實現

沒有留言:

張貼留言