Javascript:检查url是否已更改?
我的url格式如下:Javascript:检查url是否已更改?,javascript,Javascript,我的url格式如下: http://domain.in/home http://domain.in/books/notes http://domain.in/books/notes/copy 我在window.load上调用了一个javascript函数来检查url是否已更改 如果url已更改,则执行代码,否则将在5秒后返回并再次检查 我的代码是: window.onload = function(){ setInterval(function(){ page_open()
http://domain.in/home
http://domain.in/books/notes
http://domain.in/books/notes/copy
我在window.load上调用了一个javascript函数来检查url是否已更改
如果url已更改,则执行代码,否则将在5秒后返回并再次检查
我的代码是:
window.onload = function(){
setInterval(function(){
page_open();
}, 5000);
};
function page_open(){
var pages=unescape(location.href);
pages=pages.substr( pages.lastIndexOf("studysquare.in/") + 15 );
// gives book if url is http://studysquare.in/book
//alert("pages"+pages+"\n\n recent"+recent);
if (pages==recent) { return; }
recent=pages;
alert("Reached down now the code will execute.");
}
现在的问题是:当url类似于:
http://domain.in/book
单级深,然后一切正常。但是当url是
http://domain.in/book/copy or http://domain.in/book/copy/notes
那么什么都不管用。。。。。
每5秒检查一次javascript中的3级深度url更改有什么帮助吗?:)
嗨,对不起,我忘了告诉你。。。我有一个.htaccess文件,当写入
域.in/
后的任意长度url时,该文件不允许浏览页面。。。。这意味着只有一个页面保持打开状态,不受url更改的影响…当用户更改url时,浏览器将卸载当前所在的整个页面(包括javascript,因此它将停止运行),然后加载下一个页面。没有javascript能够跨页面更改运行。如果他们正在导航到另一个页面,则无法像您这样监视URL中的更改
捕捉URL变化的最佳方法是在body对象中添加
onUnload
事件,以便在开始加载用户请求的新页面之前,浏览器卸载页面时触发javascript——但我不确定这是否有助于实现跟踪用户最近页面浏览量的目标(如果这就是你想要做的)。听起来像是一个历史插件,它会给你很大帮助
它允许您在URL更改时处理事件,以便您可以根据需要加载新内容。您意识到在加载新页面时,您的代码的上下文将被破坏,并创建新的上下文吗?您的代码永远不会检测到更改,因为它的当前实例在您导航时停止执行。您好,抱歉,我忘了告诉您在…我有.htaccess文件,它不允许在写入domain.in/后的任何长度的url时导航页面…这意味着只有一个页面保持打开状态,并且不受url更改的影响…通过检查url是否已更改,您试图实现什么目的?只需尝试在主稳定页面上打开相对页面…htaccess不会改变更改浏览器的工作方式。如果他们更改URL,浏览器仍将破坏您的页面的当前上下文,并为其下一个请求创建一个新的上下文,而不考虑.htaccess(只有您的服务器才能看到,而不是浏览器)您好,我知道这一点…请告诉我为什么它不能处理2或3级深度url,因为url更改不会更改我的页面…感谢回复,因为它从未被调用过。上下文已被破坏,并且您的“旧url”在下一页调用代码时不存在。请将其视为一个正在运行的进程。当您转到另一页时,它会终止该进程并启动该进程的新实例。没有保留变量或数据,它将全部销毁。