網頁post自動產生iframe

大部份在寫網頁要上傳檔案時都需要使用到iframe做一個中繼,
可是如果response一個錯誤訊息時,前一個iframe資料就會變成history,
在控制上,像重新整理等時,就會遇到暫存資料的問題,以下有一個方法,
可以在檢查完所有form條件時才自動createiFrame做post動作,
而重新整理時(或第一次進入此畫面時)又不會真實存在,來解決暫存的問題。

function createIFrame(){
if(!document.getElementById(“_hiddenframe”))
{
var frame = document.createElement(“iframe”);
frame.setAttribute(“name”,“_hiddenframe1″);
frame.setAttribute(“src”,“about:blank”);
frame.setAttribute(“frameborder”,“0″);
frame.setAttribute(“height”,“0″);
frame.setAttribute(“width”,“0″);
frame.setAttribute(“id”,“_hiddenframe”);
frame.name = “_hiddenframe”;
document.body.appendChild(frame);
window.frames._hiddenframe.name = “_hiddenframe”;
document.getElementsByTagName(“body”)[0].appendChild(frame);

}
}

JavaScript Source Compression Obfuscators

Google Closure Complier
Google提供API讓用戶端可以直接撰寫自己的程式來壓縮及擾亂JavaScript Source,而以下是它提供UI介面,可以直接Add a URL,就可以輸出Complier後的Script Code,畫面如下:
Labs網址:http://code.google.com/intl/zh-TW/closure/compiler/docs/gettingstarted_ui.html
UI網址: http://closure-compiler.appspot.com/home

Yahoo YUI Compressor
Yahoo在很早以前就提供JavaScript及css的Compressor及Obfuscators,而它本身並沒有UI介面,只能直接使用java command來執行java –jar yuicompressor-x-y-z.jar 。
官方網站:http://developer.yahoo.com/yui/compressor/
測試
實際用prototype.js這個script來壓縮,結果如下:
原始檔大小約124,136位元組
Google Closure Complier執行過後約71,280位元組
Yahoo YUI Compressor執行過後約72,612位元組
以上的設定值均為一般設定
每萬次展示節省成本約50Mb(以Google Cosure Complier為例)

[javascript]特效accordion

這裡介紹幾個Accordion特效
1. jquery版本
網址
裡面有很詳細的說明及修改方法,很順暢,不過css有點小多,比較不好改

2. prototype 版本

[jsp小技巧]利用Throw Exception來完成Ajax

一般在寫Ajax時,最直覺的使用方法就是利用Ajax Object來要求Server給與回應,
再依回應的內容解西倒底是完成動作?還是有錯誤產生,如必填欄位未填。
這裡介紹一個小技巧,在編譯式的網頁伺服器語言可能比較合適使用。
大概的原理是利用程式在執行有錯誤時Throw Exception來當做錯誤訊息,
回傳給client,而client只要接收到503的錯誤,則就可以知道動作並未完成,
反之則是完成。
範例使用prototype來使用Ajax,傳送及回應,有需要可以參考:
Ajax 使用prototype.js 1
以下是載行結果,當有填值時,則回應填寫的值,
沒填值的時候就回傳錯誤訊息。(Exception)

[javascript效果]marguee move top

這是一個簡單的例子
大概的構想是,先把原始要上移的範圍A copy(clone)一份放置於無接縫的下方B
當B移到動可視範圍的0px時,瞬間把A設成在0px的地方
那向上移的方式是利用外框的style屬性overflow:hidden,然後利用scrollTop一直增加,那內容物就會被向上跑了
由右向左看物件的變化大概下如(紅色代表B,藍色代表A)

在第四個跟第五個時瞬間把A設成在0px
再來做的小實驗
利用scrollTop來移動物件位置

jquery menu如何修改成mouseover自動打開?

jquery的menu show效果
demo網址如下:
http://p.sohei.org/stuff/jquery/menu/demo/demo.html
我們以Sample one做例子
原本的行為是onclick時會顯示出childnode,而childnode移入時可以顯示更下一層的結點
要修改的地方其實是onclick變成onmouseover
html的部份如下:

[javascript]滑鼠移動評分

這個javascript就是一般看到mouse移動到第顆星就會顯示幾分,減少單板的radio choice
構想
在每一個img裡,偷偷給定一個attribute 當做index 的值(判斷mouseover是在那一個img裡)
設定img的mouseover動作,當設定的attribute跟for loop的index小於時,可定另一種圖
否則就回覆成原始的圖
source大概如下

[javascript]Menu Bar

這是個很簡單的JavaScript的Menu Bar只可以由左向右顯示
構想
利用二個Div,第一個Div檔顯示Menu名字用的,第二個把寬高跟都設到最小
(看需求),以上二者均設定float:left
再來把滑鼠移入時要顯示的資料利用Div 放在上面的第二個Div 裡,設定其style
position:relative;
display:none;
z-index:100;
toppx;
left:0px;
利用第二個Div定位來顯示次Menu內容

[javascript]簡單的拉Bar效果

很好玩的程式
按右邊可以把中間畫面向右移
按左邊可以把中間畫面向左移
IE跟Firefox均可使用喔
支援有DTD宣告的狀態
可以先試看看效果喔,如下

Mask Login登入遮罩製作原理

之前有介紹過Mask Login,那現在來介紹Mask Login製作的原理
首先可以看到當頁面顯示完成後,紅色的區塊為Browser的可示範圍
如果要做到遮罩Mask的效果目前最好的方法是遮住可示範圍就可以了
然後在Mask上面放上Login資訊就可以了