in

Darkthread

黑暗執行緒

Browse by Tags

  • 【茶包射手日記】網頁 Enter 鍵誤擊刪除鈕疑雲

    同事報案,在「以 MVVM 清單實作資料編輯介面」的經典應用場景( Knockout版範例 、 Angular版範例 )遇見怪事。新増一筆資料後,將焦點移至 <input type="text"> 輸入欄位,若按下 Enter 資料會莫名消失,按一次消失一筆… 程式用了 jQuery、Bootstrape、Knockout、KendoUI,加上一堆自訂程式庫,無法斷定是誰造成,只好抽絲剝繭,以能重現問題為原則,將掛載的程式庫及 DOM 元素一一拆除。歷經一番功夫,最後竟發現是個 HTML 基本觀念,某自以為資深的網頁設計老鳥,乖乖上了一課。 用一個超精簡範例重現問題...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 06-28-2017
  • 實例分析-彈出式視窗被瀏覽器封鎖

    昨天剛在公司解完案例,今天又在日常生活遇到實例,老天爺這暗示明顯無比,趕緊來篇筆記,以防出門雷劈! 最近迷上蝦皮拍賣。能跟 LINE 一樣跟賣家溝通超方便,尤其問完問題馬上接到賣家的實體照片真令人感動,不用出門與人面對面又保有臨櫃交談的即時性,真是阿宅的救星。遇到一個賣家很妙,凌晨四點多發訊息通知我補寄商品今天會到(不知對方有沒有早起的拎杯秒回「謝謝」嚇到? XD)。 在中華郵政網站輸入包裹號碼,按下「運輸資料」查詢鈕… 登楞! JavaScript 試圖彈出視窗被 Chrome 瀏覽器封鎖了! 簡單來說,這是踩中「瀏覽器會封鎖不是使用者點擊直接觸發的 window.open」地雷。(詳細說明可參考...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 06-15-2017
  • onbeforeunload 事件不再支援自訂訊息

    要防止使用者網頁輸入資料時誤按超連結或回上頁鍵,來不及儲存(送出)就離開,有個古老技巧是攔截 onbeforeunload 事件,使用 return "…" 傳回提醒文字,讓使用者有機會反悔,選擇停留在原頁面。(參考: 如何避免使用者在特定網頁表單在未經送出時意外離開 ) 這招用了多年,今天在寫某個設定網頁時卻發現 Chrome 沒有顯示我在 onbeforeunload 傳回的提醒文字,而是出現「系統可能不會儲存你所做的變更」字樣。 原以為是寫法有誤不符 Chrome 要求,爬文後發現背後有故事: Chrome 從 51 版(2016 年 4 月)起 取消 onbeforeunload...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 01-04-2017
  • 小試 JavaScript Promise

    非同步邏輯是寫 JavaScript 逃不掉的複雜課題,古早流行的做法是傳入 Callback 函式當參數,待特定作業完成再呼叫,缺點是串接程序一旦變多,就會出現波動拳式排版,寫到渾然不知身處夢境第幾層: asyncJob1( function () { //Callback 函式: asyncJob1 完成後呼叫 //...... ayncJob2( function () { //Callback 函式: asyncJob2 完成後呼叫 //...... ayncJob3( function () { //Callback 函式: asyncJob3 完成後呼叫 //...... ayncJob4...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 12-22-2016
  • 【笨問題】JavaScript取字串split()結果最後一段

    困擾我很久的一個問題:寫程式時常遇到用Split切字串再取最後一節的情境,例如:「DomainName\Account」取Account、「Oracle.ManagedDataAccess.Client.OracleConnection」取OracleConnection。 這類需求用C#寫,當然二話不說,Split()加LINQ .Last()一行搞定: "Domain\\Account" .Split( '\\' ).Last() 但同樣一件事搬到JavaScript我就發傻了,只會中繼傳球,無法由外野直傳本壘: var ary = "Domain...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 07-10-2016
  • 在JavaScript模擬C# Dictionary、LINQ Where、Select與OrderBy

    一週內被兩位同事問到幾乎相同的問題,這一定是天意!趕緊寫篇FAQ以免天公伯不開心~ 【問題】 用JavaScript要怎麼實現Dictionary<string, T>? JavaScript有沒有類似LINQ Where()、Select()、OrderBy()的東西? 回答第一個問題,JavaScript物件本身就具備Dictionary<string, T>的特性,範例如下: <! DOCTYPE html > < html > < head > < meta charset ="utf-8" >...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 07-02-2016
  • Hash對講機-IFrame跨站台網頁通訊程式庫

    這是最近 跟老IE纏鬥 衍生的副產品。 雖然已研究出 用document.domain克服無法與IFrame跨站台網頁溝通問題 ,但實務上常不免會遇到使用IP、機器名稱或別名連上網站的場合,document.domain法只適用URL採FQDN完整網域名稱且後段網域相同的情境,實用性大減。 針對IFrame跨站台溝通, 浏览器同源政策及其规避方法 一文提到三種解法: window.name 跨文件傳輸API(Cross-Document Messaging) 片段識別碼(Fragment Identifier,指xxx.aspx#yyy,#號之後的部分,可透過location.hash取回) Cross...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 06-17-2016
  • 克服入口網站內嵌其他網站之跨網站存取限制

    文章標題有點饒舌難懂,直接說我需求就清楚了。我想在員工入口網站(例如:portal.utopia.com)加入人事、行政、會計、電子表單等現成網站功能,這些應用程式各有自己的網站(例如:webap.utopia.com),最簡單的整合方法是在入口網站放個Iframe將其他網站的網頁內嵌進來,兩分鐘搞定,用膝蓋就能完成。 BUT,人生最機X的就是這個BUT! PM/老闆/使用者一定不會這麼簡單放過你,既然網頁已經整在一起,那麼切換樣式跟入口網站融為一體,審完表單入口網站的待審數字要減一,非常合情合理,應該難不倒你吧?不!瀏覽器跳出來說:「Over my dead body!」 母網頁跟Iframe網頁要溝通基本上不是難事...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 05-07-2016
  • 【茶包射手日記】勿用UrlEncodeUnicode/escape

    寫WebClient.DownloadString()時用了"some.aspx?t=" + HttpUtility.UrlEncodeUnicode("中文")寫法組網址及Query String參,遇到一些問題,學到一些知識,筆記之。 先來個範例好說明。為便於測試,我寫了一個超簡單的ChkQueryString.aspx傳回Request.Url.Query檢查URL查詢參數: <%@ Page Language="C#"%> <% Response.Write( "QueryString="...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 05-04-2016
  • 【茶包射手日記】JS Bin的無窮迴圈保護機制

    同事報案,用 JS Bin 跑迴圈計算從1加到n測試效能,發現 for 迴圈次數增加到100萬後加總結果不對,每次執行會得到小於正確值(499999500000)的隨機數字;但若不用for改用 lodash _.times() ,跑再多次結果也是正確的。 為了調查,先將程式碼簡化到可重現問題的最精簡內容: var count = 1000000; var sum = 0; for ( var i=0;i<count;i++) sum += i; console.log( "Inline:" +sum); 發現一個現象,如果用<script>將程式內嵌進HTML...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 04-26-2016
第1頁,共15頁 (147個項目) 1 2 3 4 5 下一頁 > ... 最後一頁 »
Powered by Community Server (Non-Commercial Edition), by Telligent Systems