嵌入亚马逊推荐Javascript小部件时出现Javascript错误

时间:2016-12-30 16:05:42

标签: javascript uncaught-typeerror amazonads

我尝试在我的网站上嵌入一个亚马逊推荐小部件,但我在控制台中出现以下错误,小部件显示为空框:

dynscript-1.js:1 Uncaught TypeError: Cannot read property 'addEventListener' of null
    at Object.d.addEventHandler (dynscript-1.js:1)
    at Object.e.trackFormSubmission (dynscript-1.js:1)
    at Object.e.renderSearchBar (dynscript-1.js:1)
    at Object.e.render (dynscript-1.js:1)
    at o (dynscript-1.js:1)
    at Object.d.init (dynscript-1.js:1)
    at Object.e.init (dynscript-1.js:1)
    at dynscript-1.js:1
    at h (onejs?MarketPlace=US&adInstanceId=87884aaa-94ab-4393-895a-ebfe6886f93b&storeId=xxxxxx-20:1)
    at Object.m.execBodyScripts (onejs?MarketPlace=US&adInstanceId=87884aaa-94ab-4393-895a-ebfe6886f93b&storeId=xxxxxx-20:1)

页面中的代码:

<script src="//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US&
adInstanceId=a830e6a0-c6c1-4f0a-84ab-0e2dc445ff9d&storeId=xxxx-20"></script>

更新:我发现亚马逊原生购物广告代码在您将其放入表单HTML标记时无法运行,无法找到解决方法。在engagedforums.com上有一些关于它的讨论很安静,但所有这些都没有任何好的解决方案。有人建议将代码放在单独的html和iframe中,但这对依赖于基于页面内容的服务相关广告的内容相关广告来说是一个糟糕的解决方案。

*我用xxxx

替换了原来的storeId id

2 个答案:

答案 0 :(得分:1)

您可以尝试创建动态script代码并使用javascript将其添加到头部。这样至少你可以加载他们的资源。由于加载顺序,仍可能存在一些错误。

var amzScript = document.createElement('script');
amzScript.src = "//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US&adInstanceId=a830e6a0-c6c1-4f0a-84ab-0e2dc445ff9d&storeId=xxxx-20";
var head = document.querySelector('head');
head.appendChild(amzScript);

答案 1 :(得分:1)

在挖掘之后,我发现如果禁用搜索栏功能,代码将在表单标记内工作。但是你必须自己使用初始化变量值的代码。

您可以通过添加以下行来执行此操作:

amzn_assoc_search_bar = "false";