javascript - 当值未定义时,如何填充 UTM 参数的默认值?
问题描述
一段时间以来,我一直在收集 UTM 参数并使用这些值成功填充表单字段。utm_source
如果我的为空白,我不想默认为空白或空值,而是为utm_source
“网站”提供默认值
这是我的代码:
// Parse the URL
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)");
var results = regex.exec(location.search);
return results === null
? ""
: decodeURIComponent(results[1].replace(/\+/g, " "));
}
// Give the URL parameters variable names
var source = getParameterByName("utm_source");
var medium = getParameterByName("utm_medium");
var campaign = getParameterByName("utm_campaign");
// Put the variable names into the hidden fields in the form.
// selector should be "p.YOURFIELDNAME input"
document.querySelector("p.utm_source input").value = source;
document.querySelector("p.utm_medium input").value = medium;
document.querySelector("p.utm_campaign input").value = campaign;
没有错误消息,脚本按预期工作。如果其中一个参数为空白,我只是想添加一个默认值。我怎样才能做到这一点?
解决方案
你应该能够通过条件假设你的 getParameterByName 函数返回undefined
或在没有找到任何东西时类似的虚假值来做到这一点:
var source = getParameterByName('utm_source') || 'my default value';
推荐阅读
- c++ - 使用“auto”推断嵌套初始化列表的类型
- keycloak - Keycloak的授权
- reactjs - 忽略首次挂载 React-Spring 的初始转换
- elasticsearch - 从公网域名或IP访问elasticsearch
- java - 获取 URL 时出错:在获取请求时删除了其中一个子目录
- git - 合并添加新 Git LFS 类型的分支
- java - 我的插件不断将我的命令作为消息返回
- android - RNFirebase 通知问题显示图标
- java - 在 Eclipse 中无法启动 tomcatv9.0
- c++ - 消息框在 WM_COMMAND 中不起作用!(WIN32 API)