我正在开发一个根据规则验证页面的扩展,例如我正在检查数据层中的值是否与我在各种元素中所期望的值相对应。粘贴到控制台时,我的测试代码非常有效。我的目标是将其转移到扩展名。
从弹出窗口我调用内容脚本中的函数,内容脚本就像这样
function testcode (avalue){
alert(avalue)
//This works
data_element_type_count = $('a[data-element-type]').length + 1;
alert(data_element_type_count)
//This doesn't
productListing_count = hcDatalayer.productListing.length + 1;
alert(productListing_count)
}
testcode ('hello')
我明白了:未捕获的ReferenceError:未定义hcDatalayer
当页面加载时,如果我从弹出窗口运行它,则相同的位失败
Error in event handler for runtime.onMessage: ReferenceError: hcDatalayer is not defined
at testcode (chrome-extension://lbcndjkkmngpdcgojifgolgchhaciipb/contentscript.js:49:28)
at chrome-extension://lbcndjkkmngpdcgojifgolgchhaciipb/contentscript.js:8:4
如果在控制台中粘贴以下内容,则可以使用
productListing_count = hcDatalayer.productListing.length + 1;
alert(productListing_count)
我可以想象它不能处理页面加载,因为可能尚未推出值,但是从弹出窗口我不确定为什么它不起作用,它显然可以访问该页面作品
data_element_type_count = $('a[data-element-type]').length + 1;
alert(data_element_type_count)
从控制台开始工作。我错过了什么?任何帮助将不胜感激。
由于
捐赠