问题
保持获取'undefined'作为返回的Google跟踪代码管理器变量。
描述
我正在尝试编写自定义javascript变量以提取'data-name'
IF 'data-form-title'
返回““
我有一个我要标记的网站,需要获取表单名称。问题出现了,其中某些表单的名称以“”返回,所以我想使用IF / Then逻辑来选择另一个属性(如果第一个属性返回为空)。
具有适当的表格标题https://www.mcgeetoyotaofclaremont.com/popup-availability的表格
具有空的“”表单标题的表单('给您自己发个链接')https://www.mcgeetoyotaofclaremont.com/vehicle-details/new-2020-toyota-yaris-hatchback-le-claremont-nh-id-33375400#
我尝试过的事情
我已经测试了两个querySelector,它们都可以独立工作。当我尝试使IF条件出现问题时。
我也尝试过var answer = 'Unknown'
,然后根据条件将变量替换为formtitle
或datatitle
,以便脚本在函数中仅返回1。
对于我来说,这似乎很简单,当我交叉检查其他示例(例如从函数中删除名称)时,它似乎应该可以正常工作。
当前代码
function() {
var formtitle = document.querySelectorAll('form[data-form-title]')[0].attributes['data-form-title'].nodeValue;
var datatitle = document.querySelectorAll('form[data-form-title]')[0].attributes['data-name'].nodeValue;
if (formtitle != ""){
return formtitle;
} else {
return datatitle;
}
}
var datatitle = document.querySelectorAll('form[data-form-title]')[0].attributes['data-name'].nodeValue;
没有data-name
属性。因此,您需要确保尝试访问正确的属性,或者可以将变量简单地包围在try-catch块中,如下所示:
function() {
var formtitle = document.querySelectorAll('form[data-form-title]')[0].attributes['data-form-title'].nodeValue;
var datatitle = '';
try{
datatitle = document.querySelectorAll('form[data-form-title]')[0].attributes['data-name'].nodeValue;
}catch(err){}
if (formtitle != ""){
return formtitle;
} else {
return datatitle;
}
}