2011年6月11日 星期六

JavaScript大全14章

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")
則只是單純捲動至定名錨點  而不擾亂瀏覽歷程

沒有留言:

張貼留言