【问题标题】:JS Function URL Parameters - Null Value [duplicate]JS函数URL参数-空值[重复]
【发布时间】:2020-08-24 11:13:23
【问题描述】:

我正在尝试提取 URL 参数以传递给预构建的 HTML 表单。

示例网址为:

?state=CA&**period**=PERIOD_FIXED_30YEARS&**loan**=200000&ltv=80&**transaction**=54&property_type=34&fico=740&occupancy=49&cashout=0&rate=4.125&fees=510&points=0.204&trackingID=1445830871741638005

粗体字是我需要拉的。

我试图通过以下方式做到这一点:

function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
    results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

//Gathering the URL Parameters
var period = getParameterByName('period');
var loan = getParameterByName('loan');
var ltv = getParameterByName('ltv');
var transaction = getParameterByName('transaction');
var property_type = getParameterByName('property_type');
var fico = getParameterByName('fico');
var occupancy = getParameterByName('occupancy');
var cashout = getParameterByName('cashout');
var rate = getParameterByName('rate');
var fees = getParameterByName('fees');
var points = getParameterByName('points');
var trackingID = getParameterByName('trackingID');

然后分配给表单使用

document.getElementById("tfa_49").value = period;
document.getElementById("tfa_50").value = loan;

我不断收到空错误,我认为这是正则表达式。

任何帮助将不胜感激。我在网站上搜索了类似的问题,但没有一个答案适用于我的情况。

使用工作代码更新:

<script type="text/javascript">


//Used to pull URL
  
const link = window.location.href;
const url = new URL(link);


//Function to get the URL parameters
function getParameterByName(name) {
  return url.searchParams.get(name);
}

//Gathering the URL Parameters and writing to console to check if parse is accurate -- Note the console.log can be removed if needed
var period = getParameterByName('period');
console.log(period);

var loan = getParameterByName('loan');
console.log(loan);

var ltv = getParameterByName('ltv');
console.log(ltv);

var transaction = getParameterByName('transaction');
console.log(transaction);

var property_type = getParameterByName('property_type');
console.log(property_type);

var fico = getParameterByName('fico');
console.log(fico);

var occupancy = getParameterByName('occupancy');
console.log(occupancy);

var cashout = getParameterByName('cashout');
console.log(cashout);

var rate = getParameterByName('rate');
console.log(rate);

var fees = getParameterByName('fees');
console.log(fees);

var points = getParameterByName('points');
console.log(points);

var trackingID = getParameterByName('trackingID');
console.log(trackingID);




//On load function to prefill the forms hidden fields
$( document ).ready(function() {
  document.getElementById("tfa_49").value = period;
  document.getElementById("tfa_50").value = loan;
  document.getElementById("tfa_51").value = ltv;
  document.getElementById("tfa_53").value = transaction;
  document.getElementById("tfa_54").value = property_type;
  document.getElementById("tfa_55").value = fico;
  document.getElementById("tfa_56").value = occupancy;
  document.getElementById("tfa_57").value = cashout;
  document.getElementById("tfa_58").value = rate;
  document.getElementById("tfa_59").value = fees;
  document.getElementById("tfa_60").value = points;
  document.getElementById("tfa_61").value = trackingID;
});


</script>

【问题讨论】:

    标签: javascript regex salesforce url-parameters url-parsing


    【解决方案1】:

    您可以创建一个URL 对象,然后使用url.searchParams.get(param) 方法获取所需的参数。 More information.

    工作示例:

    const link = "http://www.example.com/test.html?state=CA&period=PERIOD_FIXED_30YEARS&loan=200000&ltv=80&transaction=54&property_type=34&fico=740&occupancy=49&cashout=0&rate=4.125&fees=510&points=0.204&trackingID=1445830871741638005";
    const url = new URL(link);
    
    function getParameterByName(name) {
      return url.searchParams.get(name);
    }
    
    //Gathering the URL Parameters
    var period = getParameterByName('period');
    console.log(period);

    硬编码的网址仅用于您的网址的示例,在您的代码中使用:

    const url = window.location.href
    

    【讨论】:

    • 我认为我在这里的困惑是如何将该变量分配给表单,然后对于“const 链接”如何自动生成?
    • 你可以使用window.location.href ,我只是硬编码的例子。
    • 这是我在尝试此操作时遇到的错误:'''Uncaught TypeError: Cannot read property 'get' of undefined at getParameterByName (55?state=CA&period=PERIOD_FIXED_30YEARS&loan=200000&ltv=80&transaction=54&property_type = 34&Fico = 740和占用= 49&Cashout = 0和率= 4.125和费用= 510&packetingID = 14445830871741638005 &trackingID=1445830871741638005:77'''
    猜你喜欢
    • 1970-01-01
    • 2016-03-05
    • 2014-09-16
    • 2014-05-16
    • 2013-05-11
    • 1970-01-01
    • 2021-11-29
    • 2014-05-10
    相关资源
    最近更新 更多