Javascript 从函数返回数据集到 xmlhttprequest 获取参数

Javascript returning dataset from function to xmlhttprequest get parameters

我有一个用 php 变量填充的数据属性。 php 变量是一个数值。

<?php $userId = 123; ?>
<div class="agent-detail-info" data-id="<?= $userId ?>"></div>

我正在尝试从数据集中获取值并将其传递给 get url 参数。当 php 动态打印 html 时,我已将其放入 window.onload 自己的函数中。

function userData() {
  let infoWrap = document.querySelector(".agent-detail-info").dataset.id;
  console.log(infoWrap);
  return infoWrap;
}
window.onload = userData;

const request = new XMLHttpRequest();
request.open(
  "GET",
  `url&usertolookup=${userData()}`
);

Console.log(infoWrap) returns 控制台中的正确值,但控制台显示错误且未填充获取参数

未捕获类型错误:无法在 userData

处读取 null 的属性(读取 'dataset')

我认为发生这种情况是因为请求 运行 在调用 userData 函数之前 DOM 尚未填充?

这个有效:

function userData() {
  let infoWrap = 123;
  return infoWrap;
}

我尝试将请求包装到一个函数中,该函数在 DOM 加载后运行,但这也没有用。

您应该 运行 代码位于 window.onload 的末尾,因此在 .agent-detail-info 元素添加到 DOM 之后 运行s。 运行 userData() 本身什么都不做。

window.onload = () => {
  const request = new XMLHttpRequest();
  request.open(
    "GET",
    `url&usertolookup=${userData()}`
  );
};