接獲報案,某個在IE7運作已久的網頁改用IE8執行,onblur事件呼叫windows.showModalDialog()開啟新視窗的功能傳回"物件不支援此屬性或方法"(Object doesn't support this property or method)錯誤。showModalDialog確定是window物件的內建函數,同一網頁已在IE7使用多時,window忽然翻臉不認showModalDialog是哪招?

用錯誤訊息爬文後,才想起這是個老問題 -- 快顯封鎖會封鎖"由程式觸發而非使用者點擊觸發的開啟新視窗行為",onblur呼叫showModalDialog被歸在非使用者點擊觸發的範圍,故被封鎖! 但坑爹之處在於: 快顯被封鎖,傳回的錯誤訊息不是預期的Access Denied(存取被拒),而是詭異的"物件不支援此屬性或方法"。

將該網頁網址加在前文文末圖示的Allowed sites清單,問題瞬間消失,結案收工。


Comments

Be the first to post a comment

Post a comment