如何打印 javascript 变量并在控制台中显示它们?

How to print javascript variables and show them in console?

我正在尝试在我的网站上实施 google 广告转换,根据 google 团队,我添加了他们提供的标签,但转换没有正确显示。

在与其中一位团队成员取得联系后,他让我更正代码:

到目前为止我的代码:

<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 和脚本的电子邮件。