[英]addthis_widget.js throwing Cannot read property '_pmh' of null error on Android and Chrome
我正在使用 JavaScript 錯誤記錄工具來記錄我的移動網站上的任何 JavaScript 錯誤,並且我看到大量(一個月內 22,000 個)此錯誤:
Uncaught TypeError: Cannot read property '_pmh' of null
我可以從 addthis_widget.js 代碼中看到它源自該腳本。
我還可以看出它只影響移動 Android 和 Google Chrome 瀏覽器,尤其是:
Android 4、Android 4.1、Android 4.2、Chrome 11、Chrome 18、Chrome 25、Chrome 26、Chrome 27、Chrome 移動版 18、Chrome 移動版 25、Chrome 移動版 26
我正在使用以下外部 JavaScript 包括:
http://s7.addthis.com/js/250/addthis_widget.js#username=xa-4b6adff375a64db9
並設置以下配置對象:
<script type="text/javascript">
var addthis_config = {
data_ga_property: 'UA-18721873-1', // real GA profile hidden for privacy purposes
data_ga_social: true
};
</script>
我能做些什么來防止這些瀏覽器上多次出現此錯誤嗎?
我已經找到了這個問題的原因,它在下面的代碼中。
if (window.addthis) {
window.addthis = null;
window._adr = null;
window._atc = null;
window._atd = null;
window._ate = null;
window._atr = null;
window._atw = null;
}
這是試圖在頁面之間動態移動時清理周圍的對象以防止內存問題。
addThis 現在為這個問題提供支持,他們的支持部門給我發了以下鏈接:
http://www.addthis.com/blog/2013/05/07/a-brief-history-of-using-addthis-dynamically/#.Uklx4RCKyas
以及以下解釋/信息:
連同來自同行等的其他信息,我提出了在從虛擬頁面移動到虛擬頁面時(例如在您的移動應用程序中)應該執行的正確代碼。 與其將任何 AddThis 相關對象清空,不如將它們單獨放置。
當您希望我們的按鈕使用的頁面 URL 或標題(或任何其他 AddThis 配置選項)發生變化時,您應該執行我們的方法:
addthis.update(type, key, value)
它接受三個參數:類型、鍵、值。
類型是“共享”或“配置”。 該密鑰與您根據我們的 API 文檔設置的密鑰相同。 您可能需要知道的只是兩個鍵:“url”和“title”。 該值當然是您希望這些選項具有的值。
在您使用該方法更新了所有需要更新的選項后,您需要調用此方法:
addthis.toolbox(cssSelector)
cssSelector 通常是“.addthis_toolbox”,但如果由於某種原因您不想刷新所有工具箱,您可以更具體地說明它。
一旦您對代碼進行了這些更改,我相信我們的工具會為您正常工作,並且不會再出現與“空對象”相關的 javascript 錯誤。
您可以查看此 JSFiddle 以查看動態更改內容的示例:http: //jsfiddle.net/j5addthis/r6Utv/
我遇到了同樣的問題,但似乎有一次,通過簡單地將您正在使用的腳本從 addthis 升級到版本 3.0 來解決上述特定情況:
http://s7.addthis.com/js/250/addthis_widget.js#username=xa-4b6adff375a64db9
對此:
http://s7.addthis.com/js/300/addthis_widget.js#username=xa-4b6adff375a64db9
請注意,正如我上面提到的,盡管 AddThis 幫助台聲明應該可以工作,但即使使用 3.0 版,我的問題仍然存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.