14.2瀏覽器的Location和History
.分析URL
從URL中把用&符號分隔的name=value取出
var args = getArgs();
var q = ar.q || "";
var n = args.n ? parseInt(arg.n) : 10 ;
function getArgs () {
   var args = new Object();
   var query = location.search.substring(1);
   var pairs = query.split("&");
   for(var i =0;i<=pairs.length;i++)
   {
       var pos = pairs[i].indexof('=');
       if(pos == -1) continue;
       var argname = pairs[i].substring(0,pos);
       var argvalue = pairs[i].substring(pos+1);
       value = decodeURIComponent(value);
       args[argname]=value;
   }
   return args; 
}
//有關視窗位置的讀取設定
var windowWidth = window.outerWidth;     瀏覽器的尺寸
var windowHeight = window.outerHeight;
var windowX = window.screenX;     瀏覽器視窗的位置
var windowY = window.screenY;
var viewportWidth = window.innerWidth;   HTML 文件顯示所在的視野視窗
var viewportHeight = window.innerHeight;
scrollBy()  把視窗顯示的文件往上下或者左右移動
scrollTo()  把視窗顯示的文件往絕對座標值移動
focus() 兩種用法
1.將視窗拉到最上層  通常是配合  window.open 跳至舊有視窗時,將視窗至頂
2.focus()在可接受鍵盤輸入焦點的文件(如表單欄位和按鈕), 可使視窗捲動至該元素可視。
scrollIntoView() 類似focus的第2種用法  但不限制於表單欄位與按鈕
最實在的捲動方式
在想捲動的地點,先以<a name = XXX> 標籤定義錨點
再以  window.location.hash = "#XXX" 就可跳至定義點
並且能以back回到前一個位置
但這樣做會改變瀏覽歷程
另一種方式是使用
window.location.replace("#XXX")
則只是單純捲動至定名錨點  而不擾亂瀏覽歷程
 
沒有留言:
張貼留言