Posts Tagged With: internet explorer

[Web] 前端 JavaScript 開發與除錯


前幾天,我針對一個 VBScript for IE 升級到 JavaScript 的網頁加入新功能除錯,由於網頁很亂,所以我考慮用 Visual Studio Code 的 console.log 來除錯,但不知道是不是因為我都用可攜版 (免安裝版) ,我的 JavaScript Runner 跑起來不正常,無法用來除錯,所以我就考慮用網頁來除錯器。

首先先搜尋了一些 OnLine 的 JavaScript ,包含 w3school ,但都不是十分滿意,所以決定自己來寫一個簡單除錯器:

JavaScript 執行器:http://www.tlcheng.tk/Tools/Runner/Runner.htm

IE11 預設執行畫面

畫面預設分幾個區塊,用一個 HelloScript 程式碼作為預設功能展示,點選 [執行] 按鈕,會跑 eval(程式碼 + 執行指令) 送到 輸出,執行指令有點像 IDE 的即時運算視窗。

所以當點選 [執行] 按鈕時,會跑藍色線,依據執行指令 HelloScript 呼叫原始碼 HelloScript ,這也表示原始碼可以有一些無關的程式碼在那,這樣有助於將 .js 檔案內容直接複製進來測試。

在原始碼 HelloScript 使用了常見三個輸出,訊息盒 (alert)、綠線是前端網頁 (使用 divOutput)、紅線是輸出 (函數回傳),輸出結果如下。

訊息盒輸出
網頁及回傳輸出

當 JavaScript 發生錯誤時,會把錯誤碼、錯誤訊息、堆疊訊息送到 [輸出],例如故意在 [執行命令] 把函數名寫錯。

常用的 console.log 可正常輸出到瀏覽器開發工具的主控台。

IE11 console.log 測試
IE11 開發工具輸出到主控台
新的 Edge console.log 測試
新的 Edge 開發工具輸出到主控台
Chrome console.log 測試
Chrome 開發工具輸出到主控台

把 StrTools.js 內容全部貼到 [程式碼],測試瀏覽器的開發工具是否能正常除錯。

貼入 js 檔案內容進行測試
IE11 開發工具可針對貼入程式碼除錯
新 Edge 開發工具可針對貼入程式碼除錯
Chrome 開發工具可針對貼入程式碼除錯

完成了除錯器開發後,我當然找到我的問題,但這是一個很悲傷的故事。

new Date(1899, 12, 30); // 回傳 1900/01/30

一般直覺以為,上面的物件是 1899/12/30 ,但是 JavaScript 是 1900/01/30 ,因為 Month 引數是 0 ~ 11 ,不是 1 ~ 12 啊~~~ 我回翻我所有的原始碼發現,我在 StrTools.js 這個公用函數中,2018 以前的版本都有在 Month 處 加減 1,不知道何時忘了,這個事件必須記錄下來,以警惕自身。

微軟 JavaScript 的線上手冊

Categories: 工作點滴, 技術分享 | 標籤: | 發表留言

[Edge] Windows Update 後 IE 捷徑自動更新為 Edge


公司在 2012 年導入鼎新的 ERP ,當時的電子簽核 Easyflow 是使用 ActiveX 寫的,還綁在 IE (Internet Explorer) 上,公司打算完成上櫃後再更新 ERP ,避免會計流程變更影響上櫃重新審查。

IE 被各大公司拋棄是不爭的事實,也沒打算替他平反,平常同事都使用其他瀏覽器上網,但是上電子簽核,還是得用 IE ,因此 IT 幫同事設定電腦時,會在 Win10 下方的開始工具列釘選 IE ,並且把 Easyflow 的捷徑,從 IE 網址列拖到桌面,以便方便使用 IE 開啟電子簽核。

不知道是哪個 Windows Update 搞的鬼,二月有零星個案,三月有十幾個個案,都是開始工具列、桌面捷徑全部被改為 Edge 。

開啟桌面捷徑的內容,其連結已經被改變,所以不管怎樣操作,都會先開 IE 再自動轉 Edge ,很難搞。

比較簡單的做法:

用檔案總管開啟以下位置檔案:C:\Program Files\Internet Explorer\iexplore.exe

等到 IE 開啟後,重新釘選到開始工具列,並且連上公司電子簽核後,就可以重新使用 IE 了。

我另外調整了瀏覽器設定再繼續觀察。

Edge 與 IE 預設行為

Edge 與 IE 預設行為

Categories: 工作點滴, 技術分享 | 標籤: | 發表留言

[IE11] 透過設定信任網站簡單讓 IE11 恢復 VBScript 支援


我從 1998 開始寫 ASP 動態網頁,那時瀏覽器是 IE 的天下,我個人又是 Basic 的信徒,所以當時 client script 我都堅持使用 VBScript ,但是隨著時代轉變,VBScript 已被淘汰,更嚴重的是 IE11 居然不支援了…

在 2019/08 的新聞中有寫

預設關閉 Win7/8/10 IE11 的 VBScript
https://www.ithome.com.tw/news/132294

所以得到微軟網站查詢設定。

啟用/停用 IE11 VBScript 設定
https://support.microsoft.com/en-us/help/4012494/option-to-disable-vbscript-execution-in-internet-explorer-for-internet

可以透過 GPO (gpedit.msc) 或 regedit 兩種方式設定,機碼是動這個:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones[代碼]\140C

改成 3 停用 VBScript 支援
改成 0 啟用 VBScript 支援

針對上篇更多的 IE 安全性設定可參考下面網址:
https://support.microsoft.com/en-us/help/182569/internet-explorer-security-zones-registry-entries-for-advanced-users

例如:

代碼 範圍

0 我的電腦
1 近端內部網路
2 信任的網站
3 網際網路
4 限制的網站

雖然有描述 1001 ~ 270C 的意義,不過關於 140C 的部分沒有描述。

我自己簡單測試設定方式,目前仍然可以不用管上面的機碼,主要是下面兩項:

  1. 設定信任網站 (重點)
  2. 設定相容網站 (在網頁 meta 強制指定相容網頁,例如 IE6 亦可)

Categories: 工作點滴, 技術分享 | 標籤: | 發表留言

[H5] 讓 Internet Explorer / WebBowser Control 支援 SVG 內的走馬燈


IE 支援 HTML5 不完整是已知的事實,對 IE 的抱怨就不多說了,直接談問題吧。

因為考慮到行動裝置縮放問題及智慧電視展示,在開發長時間展示畫面因為不確定將會在 Full HD 的電視顯示、電腦或是行動裝置,因此透過 HTML5 + SVG 算是比較通用的方案,IE / WebBowser Control 也能有不錯的支援。

由於有縮放問題,所以傳統 HTML4 的 marquee 就不太適合。

配合 SVG 的語法,嵌入走馬燈可以選用 animate:

<svg x='3' y='712' width='1366' height='36'>
   <animate TARGETELEMENT='ID名稱' xlink:href='#ID名稱' attributeName="x" from="1366" to="-2000" dur="30s" repeatCount="indefinite" />
   <text x='0%' y='70%' fill='white' id='ID名稱'>走馬燈或跑馬燈的文字</text>
</svg>

但是很冏,Internet Explorer / WebBowser Control 不支援,從微軟網站可以找到程式碼透過 Script 跑,所以算是客製化,針對每個 ID 都要自己寫。

為了節省時間,可以到這個網站下載已開發好的套件,官方首頁為:https://leunen.me/fakesmile/

從 Source Code 下載 smil.user.js ,再於 head 區引入即可。

<head>
   <script type="text/javascript" src="smil.user.js"></script>
</head>

不會妨礙 Chrome 或行動裝置相容。

當然比較起來,Chrome 跑起來比較順,IE 跑起來就比較閃爍了。

Categories: 工作點滴, 技術分享 | 標籤: | 發表留言

[Skype] 不要安裝 Skype 內建的 Click to call 元件


最近在論壇上看到多篇 Office (Word / Excel / PowerPoint / Outlook) 複製、貼上異常的問題,通常是在網頁開啟下,編輯 Office 文件時就會發作,所以解決方案有二:

1. 網頁停用此元件,例如 Internet Explorer (IE) 利用管理附加元件停用。

2. 直接從新增移除程式那邊移除。

這個功能是當網頁上出現電話時,自動幫你修改網頁,讓你可以點選該電話就用 Skype 打電話,早先 Skype 5.5 以前版本並不會造成 Office 異常,最多造成 IE 沒事猛當,不知道是微軟買下來的 Skype 5.8 以後版本,還是 Office 安全性更新造成,近日很多人都發生類似問題,造成 Office 操作不正常,包含移動段落也是一樣。

由於這個功能用處不大,我是建議用方案 2 直接移除此功能。

先前版本這個功能好像是直接安裝進 Windows 內,Skype 5.8 / 5.9 都會有對話盒詢問,中文版畫面如下,安裝時記得別勾,如果勾了,就用方案 2 移除他吧~

想知道災情多嚴重嗎?Google 一下,有 120 萬篇文章~

 

如果你不幸已經安裝,透過控制台,程式功能移除它吧~

Categories: 工作點滴, 更新與回報 | 標籤: | 8 則迴響

在WordPress.com寫網誌.

%d 位部落客按了讚: