如何打印 javascript 变量并在控制台中显示它们?
How to print javascript variables and show them in console?
我正在尝试在我的网站上实施 google 广告转换,根据 google 团队,我添加了他们提供的标签,但转换没有正确显示。
在与其中一位团队成员取得联系后,他让我更正代码:
到目前为止我的代码:
- 我正在通过 URL 将电子邮件值传递到 'Thank-you' 页面。
- 我正在回显隐藏输入标签内的值,并使用 javascript
中的 ID 将其回调
- 我可以从输入中获取值并将其打印在控制台中。
<input type="hidden" id="email_for_ads" value="some@email.com">
<script>
var email_for_ads = $("#email_for_ads").val();
var enhanced_conversion_data = {
"email": email_for_ads
};
console.log(email_for_ads);
</script>
我可以在控制台中看到电子邮件 ID,我确定正在提取该值。
但是他说检查后应该像下面这样:
<input type="hidden" id="email_for_ads" value="some@email.com">
<script>
var email_for_ads = $("#email_for_ads").val();
var enhanced_conversion_data = {
"email": "some@email.com"
};
console.log("some@email.com");
</script>
我什至也试过下面的代码
var baseUrl = (window.location).href; // You can also use document.URL
var email_for_ads = baseUrl.substring(baseUrl.lastIndexOf('=') + 1);
//var email_for_ads = $("#email_for_ads").val();
var enhanced_conversion_data = {
"email": email_for_ads
};
console.log(email_for_ads);
还是一样的输出。我可以在控制台中看到该值,但在检查时。但他坚持认为是这样,并且可以在检查自身时直接看到电子邮件的值。
有人能理解吗,这是否可能,如果可以,我该怎么做。
可能,但非常非常奇怪,我强烈建议不要这样做 - 它没有提供任何好处,除了,我猜,在调试时,但在调试时只检索输入值会更容易。
如果您希望在 <script>
标签中直接打印输入值,则必须使用 document.createElement('script')
或 document.write
动态创建脚本标签。
要做到这一点,您需要另一个 脚本标签来创建动态脚本标签。
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="hidden" id="email_for_ads" value="some@email.com">
<script>
// remove this script tag
document.currentScript.remove();
// append new script tag, with the input value directly in the source code
const email_for_ads_first = $("#email_for_ads").val();
document.write(`
<script>
var email_for_ads = $("#email_for_ads").val();
var enhanced_conversion_data = {
"email": "${email_for_ads_first}"
};
console.log("${email_for_ads_first}");
// log this script tag contents, so you can see what's in it:
console.log(document.currentScript.textContent);
<\/script>
`);
</script>
没有充分的理由这样做。请不要。
您可能需要 server-side 呈现 技术来将您的电子邮件值生成到您的 HTML 和脚本中。
你可以考虑在 nodejs 中启动一个服务,在请求中获取电子邮件值,并在响应中,return 带有你的 html 和脚本的电子邮件。
我正在尝试在我的网站上实施 google 广告转换,根据 google 团队,我添加了他们提供的标签,但转换没有正确显示。
在与其中一位团队成员取得联系后,他让我更正代码:
到目前为止我的代码:
- 我正在通过 URL 将电子邮件值传递到 'Thank-you' 页面。
- 我正在回显隐藏输入标签内的值,并使用 javascript 中的 ID 将其回调
- 我可以从输入中获取值并将其打印在控制台中。
<input type="hidden" id="email_for_ads" value="some@email.com">
<script>
var email_for_ads = $("#email_for_ads").val();
var enhanced_conversion_data = {
"email": email_for_ads
};
console.log(email_for_ads);
</script>
我可以在控制台中看到电子邮件 ID,我确定正在提取该值。
但是他说检查后应该像下面这样:
<input type="hidden" id="email_for_ads" value="some@email.com">
<script>
var email_for_ads = $("#email_for_ads").val();
var enhanced_conversion_data = {
"email": "some@email.com"
};
console.log("some@email.com");
</script>
我什至也试过下面的代码
var baseUrl = (window.location).href; // You can also use document.URL
var email_for_ads = baseUrl.substring(baseUrl.lastIndexOf('=') + 1);
//var email_for_ads = $("#email_for_ads").val();
var enhanced_conversion_data = {
"email": email_for_ads
};
console.log(email_for_ads);
还是一样的输出。我可以在控制台中看到该值,但在检查时。但他坚持认为是这样,并且可以在检查自身时直接看到电子邮件的值。
有人能理解吗,这是否可能,如果可以,我该怎么做。
可能,但非常非常奇怪,我强烈建议不要这样做 - 它没有提供任何好处,除了,我猜,在调试时,但在调试时只检索输入值会更容易。
如果您希望在 <script>
标签中直接打印输入值,则必须使用 document.createElement('script')
或 document.write
动态创建脚本标签。
要做到这一点,您需要另一个 脚本标签来创建动态脚本标签。
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="hidden" id="email_for_ads" value="some@email.com">
<script>
// remove this script tag
document.currentScript.remove();
// append new script tag, with the input value directly in the source code
const email_for_ads_first = $("#email_for_ads").val();
document.write(`
<script>
var email_for_ads = $("#email_for_ads").val();
var enhanced_conversion_data = {
"email": "${email_for_ads_first}"
};
console.log("${email_for_ads_first}");
// log this script tag contents, so you can see what's in it:
console.log(document.currentScript.textContent);
<\/script>
`);
</script>
没有充分的理由这样做。请不要。
您可能需要 server-side 呈现 技术来将您的电子邮件值生成到您的 HTML 和脚本中。
你可以考虑在 nodejs 中启动一个服务,在请求中获取电子邮件值,并在响应中,return 带有你的 html 和脚本的电子邮件。