英文半角 | 英文全角 | 中文半角 | 中文全角 | |
空格 | 20 | e38080 | 20 | e38080 |
雙引號 | ""? 22 22 | "" efbc82 efbc82 | “” e2809c e2809d | “”e2809c e2809d |
瀏覽器 | HTTP 1.1 | HTTP 1.0 |
---|---|---|
IE 6,7 | 2 | 4 |
IE 8 | 6 | 6 |
Firefox 2 | 2 | 8 |
Firefox 3 | 6 | 6 |
Safari 3, 4 | 4 | 4 |
Chrome 1,2 | 6 | ? |
Chrome 3 | 4 | 4 |
Opera 9.63,10.00alpha | 4 | 4 |
以上方法都各有缺陷,都不是很好多解決方案。后來出現了一種叫JSON with Padding 的技術,簡稱 JSONP .(原理參考http://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp/),應 用JSONP可以實現JSON數據的跨域調用。非常的幸運,JQuery1.2以后支持JSONP的應用。下面側重說明在JQuery中,Json的跨域 調用。
????? 應用JSONP實現Json數據跨域調用,需要服務器端與客戶端的合作完成。引用Jquery官方的例子,客戶端掉用如下:
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",
function(data){
$.each(data.items, function(i,item){
$("<img/>").attr("src", item.media.m).appendTo("#images");
if ( i == 3 ) return false;
});
});
?
??? 注意這里調用的地址中jsoncallback=?是關鍵的所在!其中,符號會被Query自動替換成其他的回調方法的名稱,具體過程和原理我們這里不理 會。我們關心的是jsoncallback=?起什么作用了?原來jsoncallback=?被替換后,會把方法名稱傳給服務器。我們在服務器端要做什 么工作呢?服務器要接受參數jsoncallback,然后把jsoncallback的值作為JSON數據方法名稱返回,比如服務器是JSP,我們會這 樣做:
?
????? ...
????? String jsoncallback=request.getParameter("jsoncallback");
????? ...
????? out.print(jsoncallback+"({\"account\":\"XX\",\"passed\":\"true\",\"error\":\"null\"})");
?
Jquery取得的數據可能如下:
????? JQUET0988788({"account":"XX","passed":"true","error":"null"})
?
總結,用JSONP要做兩件事:
????? 1/請求地址加參數:jsoncallback=?
????? 2/服務器段把jsoncallback的值作為方法名傳回來,如JQUET098788(...)
參考:
http://www.javaeye.com/topic/169765
http://www.javaeye.com/topic/260647
下面是Request.ServerVariables("HTTP_REFERER")不能正常取值的情況:
1.從收藏夾鏈接
2.單擊'主頁'或者自定義的地址
3.利用Jscript的location.href or location.replace()
4.在瀏覽器直接輸入地址
5.<%Response.Redirect%>
6.<%Response.AddHeader%>或<meta http-equiv=refresh>轉向
7.用XML加載地址
http://www.linux-cn.com/html/program/ASP/20070424/12718.html
IE:document.frames("Iframe_ID");
FF: document.frames("Iframe_ID") : document.getElementById("ifr_1").contentWindow;
IE和FF都兼容的方法:var ifr = document.frames ? document.frames("ifr_1") : document.getElementById("ifr_1").contentWindow;
18,關于右下角彈出窗口:
?? 參看鳳凰網、天涯或CSDN的例子
19,鏈接的點擊,兩種方式:
<A href="#" onclick="log();">
<a href="javascript:log()">? 千萬不要寫target="_parent",這樣調的是父頁面的函數
IE有3種方式都可以創建一個元素:
1 document.createElement("<input type=text>")
2 document.createElement("<input>")
3 document.createElement("input")
Firefox只支持一種方式:
document.createElement("input");document.setAttribute(name,value);
------------
注: 在一個節點下增加子節點 IE也比Firefox下的方式要多.
IE:??
1 node.insertBefore(Element)
2 node.insertAfter(Element)
3 node.appendChild(Element)
而Firefox僅支持 node.appendChild.
在IE里面,html元素如果可以作為容器,那么在document.createElement創建元素時是無法設置name屬性的,比如:div,span,font等等。
相反不可以做為容器的,在用document.createElement創建元素時可以設置控件的name屬性,比如:input,button,a,img等等
#tabid .table_th td{
background-color:#C2E6F5;
font-weight:bold;
}
9,? 與某QQ號對話,支持IE和Firefox
tencent://message/?uin=73035879
10,輕松玩轉花樣表單(轉)
???? 講了各種表單域的屬性說明和樣式控制。例如textarea的wrap能控制是否自動換行,輸入框如何實現信紙效果。
11,IE密碼框里模擬顯示*號
http://bbs.51js.com/thread-72067-1-1.html
12,讓alt和title換行的小技巧
在"&#"后面加值,ASCII碼回車:13,ASCII碼換行:10,只用
就行
13,居中問題
??? (1)div居中.
??? IE將text-align:center誤解為讓所有東西居中,而不只是文本.
??? 非IE,只需定義div的寬度,然后把水平空白邊設為auto????? margin:0 auto;
?? 把以上兩者都考慮進來,即可以做跨瀏覽器的水平居中.
?? 垂直居中比較麻煩,現在先寫死,以后再考慮如何通用
??? (2)圖片居中
???? 現在先把圖片放在一個居中的大小與圖片一樣的div中,通用的方案以后再考慮。
??? http://topic.csdn.net/u/20070114/20/0718aef7-ce18-490a-9be3-b8f765490c79.html?1700147196
??? http://www.websbook.com/htmlcssdiv/divzrhstpczjz_14033.html
??? (3)div中的文字垂直居中可以通過設置line-height解決?
修改舊擴展以支持ff3.0.1:改xpi為zip,然后把install.rdf
文件拖出,找到 em:maxVersion
標簽,把值改為 3.0.1 ,再放回去,重新改后綴為xpi
.