检查主页是否使用 window.location
Check if homepage using window.location
是否可以检查我是否在使用 window.location
的网站的 homepahge/index 上?
我目前正在使用
检查 url
window.location.href.indexOf("/category/something")
但是如何查看主页?它不包含任何段。
注意:我不知道主页 URL 会是什么,所以我不能使用 url 名称,例如 window.location.href.indexOf("myhomepage.html")
更新: 我唯一的线索是主页没有 URL 段。
A JavaScript 只知道它的当前上下文。它不知道它在站点层次结构中的哪个位置,所以不,如果您不知道主页的 URL
,则无法检查您是否在主页上
如果你只是做了 window.location
并检查了那里的参数,如果没有附加 pages/paths,url 匹配 origin 等,这是否不够好检测——Idk,我从来不需要这样做?这也可能适用于 .NET 和 'other' 类型的 HTML 命名约定(即 index.html 与 index.htm)。此外,如果有人更改了文档根目录或主页指针,您或多或少会知道(也就是不关心),因为 window.location 您可以检查以下内容:
window.location
Location {replace: function, assign: function, ancestorOrigins: DOMStringList, origin: "http://whosebug.com", hash: ""…}ancestorOrigins: DOMStringListassign: function () { [native code] }hash: ""host: "whosebug.com"hostname: "whosebug.com"href: "http://whosebug.com/"origin: "http://whosebug.com"pathname: "/"port: ""protocol: "http:"reload: function reload() { [native code] }replace: function () { [native code] }search: ""toString: function toString() { [native code] }valueOf: function valueOf() { [native code] }__proto__: Location
其中有 path = '/'
。这很好地表明了主页的“风格”。
术语 homepage
本身是一个相当模糊的结构,在技术上无法识别。根据您的屏幕尺寸、设备、凭据、浏览器、date/time、地理位置等,您可以有多个不同的登录页面。
确保您位于这些登录页面之一的唯一方法是在对域的初始 GET
请求(例如 http://www.example.com
)期间处于控制之中。
因此,如果您已经在该页面上,则没有真正的方法可以知道您是如何到达那里的,以及这是否是该域提供的默认页面,尽管有是黑客,你可以尝试得到一个一般的 (尽管很容易出错) 想法。
例如,您可以编制一个常用主页路径列表:
var homepages = [ '/', 'index.html', 'index.htm', 'index.php', 'main.html', 'main.htm', 'homepage.html', 'index2.htm' ];
然后与提供的window.location.pathname
进行比较:
if (homepages.indexOf(window.location.pathname) >= 0) {
// we might be on a "homepage"
}
许多站点的主页,包括 Whosebug 都包含指向同一主页的 link。
// browser url = http://example.com
<a href="http://example.com">my site</a>
如果您有权访问源代码,则可以识别此 link 服务器端
<a id="homepage" href="http://example.com"/>my site</a>
因此,检查您是否在主页上:
document.addEventListener('DOMContentLoaded', function(e) {
var link = document.querySelector('#homepage');
if (link.href == window.location.href) {
//i'm on the homepage
}
})
所以我刚刚看到你对问题的更新。如果您知道没有 url 段,那么 window.location.pathname
不会总是“/”
是否可以检查我是否在使用 window.location
的网站的 homepahge/index 上?
我目前正在使用
检查 urlwindow.location.href.indexOf("/category/something")
但是如何查看主页?它不包含任何段。
注意:我不知道主页 URL 会是什么,所以我不能使用 url 名称,例如 window.location.href.indexOf("myhomepage.html")
更新: 我唯一的线索是主页没有 URL 段。
A JavaScript 只知道它的当前上下文。它不知道它在站点层次结构中的哪个位置,所以不,如果您不知道主页的 URL
,则无法检查您是否在主页上如果你只是做了 window.location
并检查了那里的参数,如果没有附加 pages/paths,url 匹配 origin 等,这是否不够好检测——Idk,我从来不需要这样做?这也可能适用于 .NET 和 'other' 类型的 HTML 命名约定(即 index.html 与 index.htm)。此外,如果有人更改了文档根目录或主页指针,您或多或少会知道(也就是不关心),因为 window.location 您可以检查以下内容:
window.location
Location {replace: function, assign: function, ancestorOrigins: DOMStringList, origin: "http://whosebug.com", hash: ""…}ancestorOrigins: DOMStringListassign: function () { [native code] }hash: ""host: "whosebug.com"hostname: "whosebug.com"href: "http://whosebug.com/"origin: "http://whosebug.com"pathname: "/"port: ""protocol: "http:"reload: function reload() { [native code] }replace: function () { [native code] }search: ""toString: function toString() { [native code] }valueOf: function valueOf() { [native code] }__proto__: Location
其中有 path = '/'
。这很好地表明了主页的“风格”。
术语 homepage
本身是一个相当模糊的结构,在技术上无法识别。根据您的屏幕尺寸、设备、凭据、浏览器、date/time、地理位置等,您可以有多个不同的登录页面。
确保您位于这些登录页面之一的唯一方法是在对域的初始 GET
请求(例如 http://www.example.com
)期间处于控制之中。
因此,如果您已经在该页面上,则没有真正的方法可以知道您是如何到达那里的,以及这是否是该域提供的默认页面,尽管有是黑客,你可以尝试得到一个一般的 (尽管很容易出错) 想法。
例如,您可以编制一个常用主页路径列表:
var homepages = [ '/', 'index.html', 'index.htm', 'index.php', 'main.html', 'main.htm', 'homepage.html', 'index2.htm' ];
然后与提供的window.location.pathname
进行比较:
if (homepages.indexOf(window.location.pathname) >= 0) {
// we might be on a "homepage"
}
许多站点的主页,包括 Whosebug 都包含指向同一主页的 link。
// browser url = http://example.com
<a href="http://example.com">my site</a>
如果您有权访问源代码,则可以识别此 link 服务器端
<a id="homepage" href="http://example.com"/>my site</a>
因此,检查您是否在主页上:
document.addEventListener('DOMContentLoaded', function(e) {
var link = document.querySelector('#homepage');
if (link.href == window.location.href) {
//i'm on the homepage
}
})
所以我刚刚看到你对问题的更新。如果您知道没有 url 段,那么 window.location.pathname
不会总是“/”