javascript - 使用 javascript 拦截传入的 URL

标签 javascript jquery url redirect

当用户使用合格的 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 上,那么它永远不会在任何其他页面上运行。为此,您需要将其包含在每个页面中。 只有服务器才能“查看”您的用户访问的所有页面。

关于javascript - 使用 javascript 拦截传入的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57279994/

相关文章:

javascript - JS window.answer 在另一个 html 页面上未定义

c# - 传递给 Controller ​​的数组接收为 NULL

javascript - 在 Node.js 项目上运行客户端 javascript

javascript - Js点击属性不适用于js加载的html

ubuntu - 在 url 中添加了非标准 SSL 端口

url - 如何在 url 中使用 at 符号 (@)?

c# - 如何更改 URL 中的 ASP.NET MVC Controller 名称?

php - 将类应用于 :first-child once only when creating a list dynamically with PHP?

javascript - 具有直接关系的 Vue.js 变量

javascript - 如何替换 html 中不包括标签属性的文本?