如果url位于几个不同的路径上,特别是索引和根目录,我试图运行jquery函数。现在,我有
"if (top.location.pathname === '/','index.html')
{
function happens
}
如果我在顶部只有一个路径名但我不知道有两个路径名,那么它是有效的。我也可能会做相反的事情,比如:
"if (!top.location.pathname === '/','index.html')
{
function happens
}
无法在网上找到解释此内容的任何地方!我大部分都是自学成才,所以如果这很容易就可以了,对我来说很轻松,哈哈。
答案 0 :(得分:0)
我对您的语法不完全确定,用逗号分隔'/'
和'index.html'
似乎没必要,您可以'/index.html'
。
关于实际问题,现在是使用逻辑 OR 运算符的好时机,在Javascript中它通常用作||
。
所以作为一个简单的例子:
if (true || false) // happens, because one is true
if (false || false) // doesn't happen, nothing is true
if (false || false || false || false || true) // happens, because one is true
在你的情况下,我想它会是:
if (top.location.pathname === '/index.html' || top.location.pathname === '/about.html')
我只是以about.html
为例,你明白了。如果这些陈述中至少有一个为真,则执行该条件。
解决您的第二点,(!top.location.pathname === '/','index.html')
将无法正常工作。
为什么?
因为!
否定了它附加的变量的值。在这种情况下,您要说!top.location.pathname
,即说出"取路径名,并将其否定,并将其与/index.html
进行比较。在这种情况下,这意味着条件将沿着false === '/index.html'
。
你最好否定操作员本身:(!top.location.pathname !== '/index.html')
。
如果您想确保路径名不是您的任何选项,您可以使用逻辑AND(&&)运算符。
// only matches if the pathname is neither index.html or about.html
if (top.location.pathname !== '/index.html' && top.location.pathname !== '/about.html')