只使用部分URL运行if/else脚本

Run if/else script with only part of a URL

本文关键字:if else 脚本 运行 URL 用部      更新时间:2023-09-26

我正试图编辑我的Javascript,通过基于URL的一部分的AJAX调用拉不同的数据。目前,我的if/else脚本看起来像这样:

if (window.location.href=="london") {
  $.ajax({
  url: '../financial-reports/outwork-vs-expenses-data-london.php',
  dataType: 'json'
  }).done(function(data) {
  data.forEach(function(item) {
      dates.push(item.date);
      expenses.push(item.expense);
      outworks.push(item.outwork);
      expensesOutworks.push(item.expensesOutwork);
      budgetedOutworks.push(item.budgetedOutwork);
      myExpensesChart.update();
      });
  });
} else {
  $.ajax({
  url: '../financial-reports/outwork-vs-expenses-data.php',
  dataType: 'json'
  }).done(function(data) {
  data.forEach(function(item) {
      dates.push(item.date);
      expenses.push(item.expense);
      outworks.push(item.outwork);
      expensesOutworks.push(item.expensesOutwork);
      budgetedOutworks.push(item.budgetedOutwork);
      myExpensesChart.update();
      });
  });
}

这不能工作,因为if window.location.href=="london")只是URL的一部分,而不是完整的URL。是否有一种方法来编辑这个脚本,以运行仅基于页面URL的最后一位?例如:/london/nw等?有没有更好的方法来完成这个任务?

代替

if (window.location.href=="london") {

使用以下代码

var URL = window.location.href;
if(URL.indexOf("london") !== -1)

.indexOf函数将发现字符串中存在或不存在子字符串。在你的情况下,你想要"伦敦"是存在与否的URL

我假设你在问,当url类似'https://example.com/london',所以你只是想包括或获得伦敦的值。下面的代码将帮助提供url的最后一位值。

  window.location.pathname.splitOnLast('/')[1]

它会给你'/london'。或者您可以直接在url中检查theondon是否存在

首先不需要像上面那样使用if else

你可以在

下面使用like
 var dataurl = document.URL
  $.ajax({
        url: 'somepage.php',
        type: 'post',
        dataType: 'json',
        success: function (data) {
            console.log(data);
        },
        data: dataurl
    });

在somepage.php文件中,您可以根据dataurl处理您想要的数据在javascript中,你也可以在

下面
   var urlTopost="other.php";
   if(document.url.indexOf("london")!==-1)
   {
     urlTopost="london.php";
   }
   $.ajax({
    url: urlTopost,
    type: 'post',
    dataType: 'json',
    success: function (data) {
        console.log(data);
    },
    data: dataurl
});