JavaScript 錯誤處理的逐步解說
警告
自 2020 年 6 月 1 日起,Windows UWP 應用程式的 Microsoft 廣告收益平台將會關閉。 深入了解
本逐步解說示範如何在 JavaScript 應用程式中攔截廣告相關錯誤。 本逐步解說使用 AdControl 來顯示橫幅廣告,但其中的一般概念也適用於插播式廣告和原生廣告。
這些範例假設您有包含 AdControl的 JavaScript 應用程式。 如需示範如何將 AdControl 新增至應用程式的逐步指示,請參閱 HTML 5 和 JavaScript 中的 AdControl。 如需示範如何將橫幅廣告新增至 JavaScript/HTML 應用程式的完整範例專案,請參閱 GitHub 上的廣告範例。
- 在 default.html 檔案中,新增 onErrorOccurred 事件的值,您可以在此為 AdControl 的 div 中定義 data-win-options。 在 default.html 檔案中尋找下列程式碼。
在 adUnitId 屬性之後,新增 onErrorOccurred 事件的值。<div id="myAd" style="position: absolute; top: 53px; left: 0px; width: 300px; height: 250px; z-index: 1" data-win-control="MicrosoftNSJS.Advertising.AdControl" data-win-options="{applicationId: '3f83fe91-d6be-434d-a0ae-7351c5a997f1', adUnitId: 'test'}"> </div>
<div id="myAd" style="position: absolute; top: 53px; left: 0px; width: 300px; height: 250px; z-index: 1" data-win-control="MicrosoftNSJS.Advertising.AdControl" data-win-options="{applicationId: '3f83fe91-d6be-434d-a0ae-7351c5a997f1', adUnitId: 'test', onErrorOccurred: errorLogger}">
建立 div,這將顯示文字讓您可以看到產生的訊息。 若要這麼做,請在 myAd 的 div for 之後新增下列程式碼。
<div style="position:absolute; width:100%; height:130px; top:300px; left:0px"> <b>Ad Events</b><br /> <div id="adEvents" style="width:100%; height:110px; overflow:auto"></div> </div>
建立 AdControl,這將觸發錯誤事件。 應用程式中所有 AdControl 物件只能有一個應用程式識別碼。 因此,另外建立具有不同應用程式識別碼的物件將會在執行階段觸發錯誤。 若要這麼做,請在先前新增的 div 區段之後,將下列程式碼新增至 default.html 頁面的本文。
<!-- Because only one applicationId can be used, the following ad control will fire an error event. --> <div id="liveAd" style="position: absolute; top:500px; left:0px; width:480px; height:80px" data-win-control="MicrosoftNSJS.Advertising.AdControl" data-win-options="{applicationId: '00000000-0000-0000-0000-000000000000', adUnitId: 'test', onErrorOccurred: errorLogger }" > </div>
在專案的 default.js 檔案中,在預設初始化函式之後,您將新增 errorLogger 的事件處理常式。 捲動至檔案結尾,並在最後一個分號之後放置下列程序碼。
WinJS.Utilities.markSupportedForProcessing( window.errorLogger = function (sender, evt) { adEvents.innerHTML = (new Date()).toLocaleTimeString() + ": " + sender.element.id + " error: " + evt.errorMessage + " error code: " + evt.errorCode + "<br>" + adEvents.innerHTML; console.log("errorhandler hit. \n"); });
建置和執行檔案。 您會看到您先前建置的範例應用程式的原始廣告,以及該廣告底下描述錯誤的文字。 您不會看到具有 liveAd 識別碼的廣告。