我有一个显示通知的javascript / jquery函数。我想让这个功能显示不同的模式,如果它们不在x,y和z页面上。
这就是我试图实现这个目标的方式:
function display_alert(message, type, delay, mode)
{
type = (typeof type === "undefined") ? "danger" : type;
delay = (typeof delay === "undefined") ? 3000 : delay;
mode = (typeof mode === "undefined") ? 'normal' : mode;
var current_location = document.URL;
var home_locations = ['home', 'remote', 'zip'];
for (var i = 0; i < home_locations.length; i++)
{
if (current_location.toString().indexOf(home_locations[i]) == -1)
{
// alert(home_locations[i]); return;
mode = 'top';
break;
}
}
...
因此,如果document.URL
不包含其中一个数组元素,那么我希望mode
变量变为top
。
我认为这是一个简单的问题,但我不知道如何修复它。
答案 0 :(得分:1)
您可以使用使用home_locations
数组构建的正则表达式:
var home_regex = new RegExp('('+home_locations.join('|')+')');
// home_regex = /(home|remote|zip)/;
if (!home_regex.test(document.URL)) mode = 'top';
答案 1 :(得分:0)
你需要扭转循环中的逻辑......
var current_location = document.URL;
var home_locations = ['home', 'remote', 'zip'];
var found = false;
for (var i = 0; i < home_locations.length; i++)
{
if (current_location.toString().indexOf(home_locations[i]) >= 0)
{
found = true;
break;
}
}
if (!found) {
mode = 'top';
}