我有以下JavaScript,当url(window.location)不包含www时。 javascript IS 已执行
var windowloc = window.location; // http://mywebsite.com/
var homeurl = "http://mywebsite.com/";
if(windowloc==homeurl){
//JavaScript IS EXECUTED
}
如果 ,则javascript 不执行。
var windowloc = window.location; // http://www.mywebsite.com/
var homeurl = "http://mywebsite.com/";
if(windowloc==homeurl){
//JavaScript is NOT executed.
}
如何通过允许JavaScript接受带有和不带www的URL(window.location)来克服这一点。
答案 0 :(得分:2)
使用此类代码查看域名是否包含www.mywebsite.com:
if (window.location.href.indexOf("//www.mywebsite.com/") != -1) {
// code to execute if it is www.mywebsite.com
} else {
// code to execute if it is not www.mywebsite.com
}
或者,您可以像这样使用window.location的主机名部分来检查“www。”:
if (window.location.hostname.indexOf("www.") != -1) {
// code to execute if it is www. something
} else {
// code to execute if it is not www. something
}
或者如果您想要检查您的整个域名,可以这样做:
if (window.location.hostname === "www.mywebsite.com" {
// code to execute if it is www.mywebsite.com
} else {
// code to execute if it is not www.mywebsite.com
}
答案 1 :(得分:1)
你可以使用正则表达式克服这一点,因为我相信其他答案会提供。但是,搜索引擎优化(SEO)的最佳做法是强制您http://mywebsite.com/
进行权限重定向到http://www.mywebsite.com/
,因为Google等搜索引擎会考虑使用www。和www-less版本两个独立的网站。
然后您将不需要两个单独的条件,因为您的网址将永远是www。版本
答案 2 :(得分:0)
if (window.location.href.indexOf("://www") === -1) {
// "www" excluded
} else {
// other stuff
}
将代码示例编辑为更具体
答案 3 :(得分:0)
if(window.location.href.indexOf('mywebsite.com')!= -1){
//do stuff
}
答案 4 :(得分:0)
使用hostname
对象的location
属性来确定您所服务的地址:
if (location.hostname==='mywebsite.com')
// do something
location
和其他拥有地址的对象(如链接)具有hostname
,pathname
,search
和hash
等属性,可以为您提供已经解析的部分的URL,所以你不必尝试自己挑选URL字符串。不要只查找位置字符串中是否存在www.
,因为它可能位于字符串中不是主机名的其他位置。
但是Justin的回答是:如果你试图将非www地址等替代地址重定向到规范地址,那么正确的方法是使用HTTP 301重定向而不是与JavaScript有关。这通常是在服务器级别配置的,例如对于Apache,您可以在Redirect
中使用.htaccess
。