Blackbing Playground
Blackbing Playground

記錄一些生活與工作的雜事,偶爾會寫一些前端網頁開發的心得


  • 首頁

  • 歸檔
Blackbing Playground

IE bug 情報

發表於 2011-01-06

最近遇到幾個IE的bug,在此紀錄如下:

以下節錄自解决javascript中的window.open返回object的错误

系统中用javascript中的window.open后,页面返回了一个[object]。因为系统的原因,必需使用href=”javascript:window.open()”这样的格式。所以只能通过以下办法解决。

[source language=”javascript”]
<a href="javascript:void(window.open(‘’,’’,’width=200,height=200’))">window.open()</a>
[/source]




用window.location獲取不到Referer? 最後找到這篇文章提供的方式來解決。

原來IE的Referer僅提供 Link的方式,以下節錄自“Referer” header not set on HTTP requests originating from assignment to “window.location” variable on IE

[sourcecode language=”javascript”]
function goTo(url) {
var a = document.createElement(a);
if(!a.click) { //only IE has this (at the moment);
window.location = url;
return;
}
a.setAttribute("href", url);
a.style.display = "none";
$("body").appendChild(a); //prototype shortcut
a.click();
}
[/sourcecode]

Blackbing Playground

How to Build Complicated Web Application by Using AJAX

發表於 2010-08-05

跟公司同事分享一下開發心得,不過投影片大部份都是備忘列表,有空再把心得寫上來。

Blackbing Playground

commonJS and RingoJS

發表於 2010-07-19

當javascript 效能執行的越來越好時,開始有人把javascript這個client端運行的language動到server side了。如果server side 和client side 都能夠用同一種語言來撰寫該有多好?事實上,javascript是個很好的OO語言,只是他的物件導向概念迥異於Java之類的語言,然而ECMA定義了javascript的browser-based的語言標準,但是並沒有考慮到其他層面的標準。於是commonJS就因此而誕生了,commonJS定義了其他層面的API,讓javascript這個語言還可以拿來做server-side applications, command-line tools, Desktop GUI-based applications …等,而不是只能在browser上執行而已。但implementation就百家爭鳴了,你可以在Getting CommonJS找到很多實做。


nodeJS是我最早接觸的server side JS,會玩他是因為他太火了,因為Ajaxian也不斷的有關於他的新消息,plurk的技術長Amix也曾經來到台灣介紹過它,用在server push 的技術中(Comet with node.js and V8),而且也在plurk上實際應用(Plurk: Instant conversations using Comet),令人相當振奮,這才是有web 產業應有的精神,研究、應用、實做、測試、上線。令人折服。


隨著網站越做越複雜,大部分的網站,不管後端是用哪種語言,前端幾乎都是用javascript,但是平心而論,前後端都用同一個語言,到底有什麼好處?目前的動態語言都非常的強大了,幹麼要在多學一個新的東西,了解他的架構、API等等~我想了很久,唔~大概有好幾個小時吧,參考了許多blog,以下是我整理出來的結論:



  1. 整合前後端的需求 : 事實上,javascript天生就是拿來做DOM rendering的,試想一種情況:我希望使用AJAX來做頁面的呈現,但卻也要能用server-side language來呈現網頁結果(SEO考量),這等於要為同樣的功能撰寫兩次。server端要寫一次,client-side又要做AJAX特效,前後端若能使用同一種語言,那將可以整合這樣的需求。再想另一種情況,要做到多國語言化,如果純粹在server端做多國語言化,是可以解決一些需求,但隨著若要在client端也做到多國語言,就像剛剛那種情況一樣要重複做兩次工。因此統一server-side side 和client-side的需求將可以整合前後端的需求。

  2. 動態語言:js跟其他動態語言特性一樣,甚至更勝一籌,比方說匿名函式的特性,prototype 擴充的特性等等。

  3. Not only Browser: 不再侷限只能在瀏覽器上執行,你可以在server上面運行javascript囉。(這是我個人很興奮的事情)。


RingoJS


最近注意到RingoJS,真是讓我驚艷!用Java來implement, 甚至可以在google App Engine來實做,而且非常容易安裝(Getting Started - Ringo)。光看他的介紹,就足夠吸引我投入了。這應該會是我最近努力在玩的東西。I love it. 下集待續…..

Blackbing Playground

kml color format note

發表於 2010-07-13

筆記一下:最近在研究KML,發現他的color format 有點奇怪,例如


[sourcecode language=”xml”]
<LineStyle>
<color>d90000ff</color>
<width>6</width>
</LineStyle>
[/sourcecode]

翻了一下KML的spec, 才發現原來他的color format是ABGR,而不是一般網頁使用的RGB,因此我寫了一個小function來轉換


[sourcecode language=”javascript”]
var transKMLColorToARGB = function(color){
var abgr = [];
for(var i=0; i<color.length; i+=2){
abgr.push(color.substring(i, i+2));
}
return [abgr[0], abgr[3], abgr[2], abgr[1]];
};
//get argb array
var argb = transKMLColorToARGB(‘5014B4F0’);
var color = ‘#’+argb.slice(1).join(‘’);//#F0B414
var opacity = ((parseInt(argb[0], 16)+1)/256).toFixed(2);//0.32
[/sourcecode]

Blackbing Playground

Test Auto Posting to Facebook

發表於 2010-07-01

用的是Wordbook plugin

參考文章:http://www.cravingtech.com/how-to-submit-blog-posts-from-wordpress-to-facebook-automatically.html

安裝完之後用自己的帳號登入做FB connect,同意自動發佈狀態即可。

是我用過最簡單的plugin。

Blackbing Playground

不是CSS的錯

發表於 2010-06-08

為了跟設計部門培養出共識的默契,做了一個簡單的CSS介紹

Blackbing Playground

javascript Talk

發表於 2010-03-24

這是去年在公司的簡報,最近沒什麼產值,貼貼舊文章XD


Blackbing Playground

python Django install notes

發表於 2010-03-01

  • sudo apt-get install python-setuptools

  • sudo apt-get install python-mysqldb

  • sudo apt-get install python-django

  • 開新專案:django-admin startproject project

  • 啟動server:python manage.py runserver


Blackbing Playground

O3D Intro

發表於 2010-02-28

O3D這個東西大約在一年前google 就release出來了,雖然效能還比不上flash,但相信以javascript的執行效能不斷攀升且各家大廠相繼投入的成果,一定會促使著3d WEB蓬勃發展的,以下紀錄一些目前為止的相關資訊。


  • 有關O3d的介紹可以參考droger的文章: Google 發表跨平台O3D Web瀏覽器3D技術

  • O3D plugin 下載

  • google O3D API

  • O3D game DEMO:

    • http://blog.largeanimal.com/demo/

    • O3D Home Designer




目前測試過的結果:在windows上裝了plugin之後可以在IE和firefox上運行,而windows版的chrome4.0版以上可以直接運作,而linux上的版本我還在嘗試build起來,之後有測試結果在做報告。

WEB 2D的發展已經愈來愈成熟了,SVG和canvas幾乎是複雜的2D處理的首選,也可以做到複雜的動畫處理。而O3D的出現,加快了WEB3D的發展,這應該也有助於未來chrome OS的推動,但是要吸引廠商來做相關應用程式的開發也還要在觀望,畢竟chrome OS在市場上的定位還是比較獨特的,如何擴大市場也是個難題。

http://o3d.googlecode.com/svn/trunk/samples/home-configurators/homedesigner.html
Blackbing Playground

jQuery clone object plugin

發表於 2010-01-21

Javascript 在指定物件為變數時是傳「reference」,若不知道這個特性很容易搞不清楚你的值為啥被改掉了,jQuery的extend函式可以做deep Clone,也就是遞迴將物件裡頭的任一成員都做clone,但針對array好像有點問題,因此我寫了一支小function來呼叫,以後要做cloneObject時可以直接服用。


[sourcecode language=”javascript”]
/ cloneObject 會完整clone一個全新的Object
若傳入的object是array, 則會回傳array /
(function($) {
$.extend($, {
cloneObject : function(obj){
var newObj;
if($.isArray(obj)){
newObj = [];
for(var i=0; i<obj.length; i++){
newObj.push(arguments.callee(obj[i]));
}
return newObj;
}else{
newObj = {};
return $.extend(true, newObj, obj);
}
}
});
})(jQuery)
[/sourcecode]

1…678…11
Bingo Yang

Bingo Yang

記錄一些生活與工作的雜事,偶爾會寫一些前端網頁開發的心得

109 文章
61 分類
RSS
© 2018 Bingo Yang
由 Hexo 強力驅動
主題 - NexT.Muse