不過還是彙整一些過去一年來比較值得紀錄的 js 訣竅。
(其實是 Rosario & Oslo 資料太多還是看不完XD)
- 如何讓使用者點了 <a> 的連結之後,另開視窗,但原視窗的定位點不變?
這是昨天做的一個小小的 streaming 網頁用到的技巧,由於一般人習慣去點連結,
但是因為我要拿來作 streaming 的檔案來源是用 PowerCam 錄的,
播放的時候需要用到 fsPlayer,才能完全享受更好操控的 UI,
而 fsPlayer 又會佔掉很大的版面,因此還是以另開視窗(window.open)為上策。
我原本是寫 <a href="#" onclick="open()">Watch Video</a>,
但是很快就發現這樣會讓網址變成「http://yourDomain.com/index.htm#」,
雖然的確不會讓網頁連到其他地方去,但是網頁的定位點會被捲到網頁最上方!
稍微找了一下就發現還有另一種寫法(參考網頁在這裡):
<a href="javascript://" onclick="open()">Watch Video</a>
果然改寫成這樣之後就不但可以另開視窗,而且原本網頁的定位點都不會跑掉~
- 如何用一行程式碼計算出某年某月有幾天?
這是 ... 快一年前作的 XD 趁這個機會彙整一下,主要是參考這個網頁,
記得以前像這樣的敘述可以當作程式的題目,要小心閏年、閏月等等,
隨便寫應該都要好幾十行,但是有人發現其實只要一行就可以搞定了:
return 32 - new Date(iYear, iMonth, 32).getDate();
主要就是靠 js 允許讓 Day 產生 Overflow 這樣的特性來做的
(詳細說明請看參考網頁),看到這個範例之後,我就手癢的寫了 ASP 版,
還有 ASP.NET 版 (C#),雖然說在 .Net 的世界裡,Date 本身就有 DaysInMonth 這個 static method (ref),但是應用上面那個 js 的思維,一樣都可以實作出來唷!
雖然好像只有 js 可以做到一行必殺,其他語言都還要轉型之類的多寫個兩三行,
但是 js 的那行程式真的就有種藝術的感覺,用一種很超俗的手法來解決問題,
真的是很厲害。這行程式還可以用來檢查你自己寫的閏年判斷是否正確。
我自己寫的小小程式 (三個版本) 可以在這裡下載。
- 如何強制 IE7 關閉視窗 (Tab),而不會跳出確認視窗
這個 ... 在 IE6 大家都會,IE7 一直過了很久才看到有人找出解法,
因為不是我發現的,So ... 直接參考小喵的 blog 吧 XD
Part2 就交給坎尼啦 :p
2 則留言:
如果不確定使用者的browser是IE6還是IE7的情況下
可以把 js code 寫成
window.open('','_self','');
window.opener=null;
window.close();
紀錄剛剛在點部落看到的文章,提到了一些之前沒注意過的 API,還有不同的作法:http://www.dotblogs.com.tw/yc421206/archive/2008/11/16/6002.aspx
張貼留言