繁体   English   中英

用JavaScript拦截传入的URL

[英]Intercept incoming URL with javascript

当用户使用限定的URL(例如,mysite.com / abc.html)导航到我的网站时,我想在显示任何页面之前先调用javascript函数。 我需要它,因为我的网站是由ajax驱动的。

我有一个在页面首次加载时调用的函数:

<body onload="FirstJSFunction(150);”>

该函数将拦截URL并执行我想要的操作,但前提是限定URL为mysite.com/index.html。 网站内的任何其他有效URL都会绕过javascript函数并加载请求的页面。 那不是我想要的

这是FirstJSFunction处理它的方式:

<script>
function FirstJSFunction(type) {
  var gurl = GetURL();
  length = gurl.length;
  console.log("SFR URL " + length);
  var pos = gurl.lastIndexOf("/");
  console.log ("SFR_LastFwdSlash " + pos);
  if (length > pos) {
  var sub1 = gurl.substr(pos, length);
  console.log ("SFR_Sub1 " + sub1);
  sub2 = sub1.substr(1, 5);
  console.log ("SFR_Sub2 " + sub2);         
  if (sub2 == "index") {
    ShowAjax(3);
    return true; }
  if (sub2 != "index") {
    ShowAjax(3);
    return true; }
}
</script>

<script>
function GetURL() {
  var loc_href = location.href;
  console.log ("URL " + loc_href);
  var length = loc_href.length;
  console.log ("Length " + length);
  var pos = loc_href.lastIndexOf("/");
  console.log ("LastFwdSlash " + pos);
  var pos2 = loc_href.indexOf("/");
  console.log ("FwdSlash " + pos2);
  if (length > pos) {
  var substr = loc_href.substr(pos, length);
  console.log ("Substring " + substr);
  return substr;  }
}
</script>

所以我的问题是:当用户使用除mysite.com或mysite.com/index.html之外的任何URL导航到我的网站时,例如mysite.com/abc.html,为什么上面的代码无法拦截URL并调用javascript函数(如果URL为index.html,则会发生这种情况)。

为了澄清,我只想截取第一个传入的URL。 在用户到达我的网站后,我不希望拦截用户输入到地址栏中的任何URL。

感谢您对此的任何帮助。

我不确定您解释的所有内容,因此请在此处进行一些假设。

但是,如果该JS代码仅位于index.html上,则它将永远不会在任何其他页面上运行。 为此,您需要将其包括在每个页面中。 只有服务器才能“查看”用户访问的所有页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM