如果参数在页面初始加载时与项目值不匹配,我希望应用程序在浏览器中更改url以设置参数。
我试图创建一个条件检查,以查看子字符串是否与URL中的任何位置匹配。但是,我陷入了一个循环。某些信息告诉我我对通配符的使用不正确。
htp.p('<script>
if(window.location.href !== "*'||:P4_TEAM||'*") {
window.location.href = "https://apextserverurl/ords/f?p=80001:4:::::P4_TEAM:'||:P4_TEAM||'"
}
</script>');
由于页面项不能为空,因此考虑初始加载,它将把参数推送到URL中并进行相应调整。实际结果显示url参数已正确加载到浏览器中,但似乎未能对javascript进行逻辑测试,而是保持刷新状态
答案 0 :(得分:2)
您的页面会无休止地刷新,因为您的if
条件始终为真(因为您无法在JavaScript中使用通配符……至少不是那样),并且window.location.href
将重新加载您的页面。
您可以使用正则表达式,但是对于您的示例而言,简单的string.includes()
就足够了。
您可以像这样用includes()
进行检查:
// If ':P4_TEAM' is not in the url
if(!window.location.href.includes(':P4_TEAM')) {
// Set the url to the provided string (and refresh the page)
window.location.href = "https://apextserverurl/ords/f?p=80001:4:::::P4_TEAM:'||:P4_TEAM||'";
}