Javascript 在页面上显示未知的隐藏字段值
我目前正在使用一个脚本从Google Analytics获取关于访问者的数据,并将其传递到表单上的隐藏输入字段。我正在使用本文中的脚本: 如果您在这里查看一个工作示例(-该函数从第91行开始),您可以单击“Show GA Info”(显示GA信息)按钮,查看每段数据的警报。(你不会看到真实的信息,因为分析脚本链接到不同的帐户,即不是JSFIDLE。)然而,我的问题是,我想在实际页面上显示这些数据,而不需要访问者点击“Show GA info”按钮。我想让他们在点击页面时立即看到数据Javascript 在页面上显示未知的隐藏字段值,javascript,html,function,google-analytics,Javascript,Html,Function,Google Analytics,我目前正在使用一个脚本从Google Analytics获取关于访问者的数据,并将其传递到表单上的隐藏输入字段。我正在使用本文中的脚本: 如果您在这里查看一个工作示例(-该函数从第91行开始),您可以单击“Show GA Info”(显示GA信息)按钮,查看每段数据的警报。(你不会看到真实的信息,因为分析脚本链接到不同的帐户,即不是JSFIDLE。)然而,我的问题是,我想在实际页面上显示这些数据,而不需要访问者点击“Show GA info”按钮。我想让他们在点击页面时立即看到数据 现在,pop
现在,
populateHiddenFields
功能仅在您单击“显示GA信息”按钮时填充隐藏字段。我尝试了类似于的方法,它工作得非常完美,因此我认为您没有在参数中传递表单。您可以在onload或DOM就绪事件中(根据需要)生成:
我制作document.forms[0]
,因为它是页面中唯一的表单。可以通过ID或表单名称传递对象
祝你好运它工作得很好,所以我想你没有通过参数中的表单。您可以在onload或DOM就绪事件中(根据需要)生成:
我制作document.forms[0]
,因为它是页面中唯一的表单。可以通过ID或表单名称传递对象
祝你好运下面是代码的更新,以使其正常工作:
所有值都显示在警报中
如果您想在屏幕上显示它们,请将隐藏的输入改为type='text'
原始代码的基本问题是populateHiddenFields期望一个参数引用表单,而调用它onload不会传递该引用
多亏了我引用的一些代码,以确保谷歌分析首先完成加载
我的补充:
function checkIfAnalyticsLoaded(f) {
//See https://stackoverflow.com/a/1954977/1913396
if (window._gat && window._gat._getTracker) {
populateHiddenFields(f);
} else if (window.urchinTracker) {
populateHiddenFields(f);
} else {
// Retry. Probably want to cap the total number of times you call this.
setTimeout(500, checkIfAnalyticsLoaded());
}
}
function startOnce() {
//See https://stackoverflow.com/a/1954977/1913396
if(window._gaq)
_gaq.push(['_trackPageview']);
//end
frm = frm || document.getElementById("contactform");
//or
//frm = frm || document.getElementsByName('contactform')[0];
checkIfAnalyticsLoaded(frm);
}
var frm = null;
我在表单中添加了一个id属性
然后,在身体底部:
//document.addEventListener('DOMContentLoaded', startOnce, false);
(function(){ setTimeout(startOnce, 50); })();
使用任意一种方法。因此,以下是代码的更新,以使其正常工作:
所有值都显示在警报中
如果您想在屏幕上显示它们,请将隐藏的输入改为type='text'
原始代码的基本问题是populateHiddenFields期望一个参数引用表单,而调用它onload不会传递该引用
多亏了我引用的一些代码,以确保谷歌分析首先完成加载
我的补充:
function checkIfAnalyticsLoaded(f) {
//See https://stackoverflow.com/a/1954977/1913396
if (window._gat && window._gat._getTracker) {
populateHiddenFields(f);
} else if (window.urchinTracker) {
populateHiddenFields(f);
} else {
// Retry. Probably want to cap the total number of times you call this.
setTimeout(500, checkIfAnalyticsLoaded());
}
}
function startOnce() {
//See https://stackoverflow.com/a/1954977/1913396
if(window._gaq)
_gaq.push(['_trackPageview']);
//end
frm = frm || document.getElementById("contactform");
//or
//frm = frm || document.getElementsByName('contactform')[0];
checkIfAnalyticsLoaded(frm);
}
var frm = null;
我在表单中添加了一个id属性
然后,在身体底部:
//document.addEventListener('DOMContentLoaded', startOnce, false);
(function(){ setTimeout(startOnce, 50); })();
两者都可以使用。好的,非常感谢,这真的很有帮助!我将
添加到页面中,其中一个Google Analytics值现在已填充。最后一个问题:我想将动态生成的Google Analytics值(在本例中为“f.source.value”-来自第93行)附加到页面上iframe src的末尾(iframe src从第138行开始)。理想情况下,它将显示为一个参数。例如:http://fakesite.com/test?=analyticsSource
我尝试了许多解决方案,但似乎无法将值放在iframe src的末尾。有什么想法/建议吗?下面是更新的示例:再次感谢您的帮助!如果要更新iframe的url:document.getElementById(“testIframe”).src=document.getElementById(“testIframe”).src+“&+f.source.value代码>将源代码添加到URL的末尾非常感谢Marcos-您帮了我很大的忙!我真的很欣赏聪明、简单的解决方案和快速的响应。再次感谢!我会的,但不幸的是我还没有获得足够的学分。好的,非常感谢,这真的很有帮助!我将
添加到页面中,其中一个Google Analytics值现在已填充。最后一个问题:我想将动态生成的Google Analytics值(在本例中为“f.source.value”-来自第93行)附加到页面上iframe src的末尾(iframe src从第138行开始)。理想情况下,它将显示为一个参数。例如:http://fakesite.com/test?=analyticsSource
我尝试了许多解决方案,但似乎无法将值放在iframe src的末尾。有什么想法/建议吗?下面是更新的示例:再次感谢您的帮助!如果要更新iframe的url:document.getElementById(“testIframe”).src=document.getElementById(“testIframe”).src+“&+f.source.value代码>将源代码添加到URL的末尾非常感谢Marcos-您帮了我很大的忙!我真的很欣赏聪明、简单的解决方案和快速的响应。再次感谢!我会的,但不幸的是我还没有获得足够的信用。谢谢你的运气,我很感激!谢谢你的运气,我很感激!