我怎么能这样做呢:

<script type="text/javascript">
$(document).ready(function () {
    if(window.location.contains("franky")) // This doesn't work, any suggestions?
    {
         alert("your url contains the name franky");
    }
});
</script>

当前回答

如果将字符串转换为小写或大写,这将是一个很好的实践,因为indexof()方法是区分大小写的。

这将是如果你的搜索不区分大小写,你可以简单地使用indexOf()方法,而不将原始字符串转换为小写或大写:

var string= location.href;
var convertedString= string.toLowerCase();

if(convertedString.indexOf('franky') != -1)
{
    alert("url has franky");
}
else
{
    alert("url has no franky");
}

其他回答

窗口。location不是String,但它有toString()方法。所以你可以这样做:

(''+window.location).includes("franky")

or

window.location.toString().includes("franky")

从旧的Mozilla文档:

位置对象有一个toString 方法返回当前URL。你 也可以将字符串赋值给 window.location。这意味着你 可与窗口工作。位置就好像它 在大多数情况下都是字符串。 有时候,比如当你需要的时候 调用一个String方法,你 必须显式调用toString。

相反,我喜欢这种方法。

top.location.pathname.includes('franky')

它在很多情况下都有效。

if (window.location.href.indexOf("franky") != -1)

会这么做的。或者,你可以使用regexp:

if (/franky/.test(window.location.href))

文档。URL应该给你URL和

if(document.URL.indexOf("searchtext") != -1) {
    //found
} else {
    //nope
} 

放入你的js文件

                var url = window.location.href;
                console.log(url);
                console.log(~url.indexOf("#product-consulation"));
                if (~url.indexOf("#product-consulation")) {
                    console.log('YES');
                    // $('html, body').animate({
                    //     scrollTop: $('#header').offset().top - 80
                    // }, 1000);
                } else {
                    console.log('NOPE');
                }