首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js 获取action参数

在JavaScript中获取URL中的action参数,通常涉及到解析当前页面的URL并提取查询字符串中的特定参数。以下是一些常见的方法来实现这一点:

基础概念

  • URL: 统一资源定位符,用于标识互联网上的资源。
  • 查询字符串: URL中?后面的部分,用于传递参数。
  • 参数: 查询字符串中的键值对,例如key=value

相关优势

  • 灵活性: 可以通过URL传递各种数据,便于页面间的数据共享。
  • 简单性: 实现起来相对简单,不需要复杂的服务器交互。

类型与应用场景

  • GET请求: 常用于获取数据,参数直接附加在URL上。
  • 表单提交: 用户填写表单后,通过GET方法提交,参数会显示在URL中。

示例代码

以下是几种常见的方法来获取URL中的action参数:

方法一:使用URLSearchParams

代码语言:txt
复制
// 假设当前URL是 http://example.com/?action=submit
const params = new URLSearchParams(window.location.search);
const action = params.get('action');
console.log(action); // 输出: submit

方法二:手动解析

代码语言:txt
复制
function getQueryParam(param) {
    const urlParams = new URLSearchParams(window.location.search);
    return urlParams.get(param);
}

const action = getQueryParam('action');
console.log(action); // 输出: submit

方法三:正则表达式

代码语言:txt
复制
function getQueryParam(name) {
    const results = new RegExp('[?&]' + name + '=([^&#]*)').exec(window.location.href);
    if (!results) { return null; }
    return decodeURIComponent(results[1]) || 0;
}

const action = getQueryParam('action');
console.log(action); // 输出: submit

可能遇到的问题及解决方法

问题1: 参数不存在

如果action参数不存在,上述方法会返回null或空字符串。可以通过条件判断来处理这种情况:

代码语言:txt
复制
const action = getQueryParam('action') || 'defaultAction';
console.log(action); // 如果'action'不存在,输出: defaultAction

问题2: URL编码问题

如果参数值包含特殊字符,可能会导致解析错误。使用decodeURIComponent可以有效解决这个问题:

代码语言:txt
复制
function getQueryParam(name) {
    const results = new RegExp('[?&]' + name + '=([^&#]*)').exec(window.location.href);
    if (!results) { return null; }
    return decodeURIComponent(results[1]) || 0;
}

总结

获取URL中的action参数可以通过多种方式实现,每种方法都有其优缺点。选择合适的方法取决于具体的需求和应用场景。确保处理好参数不存在和编码问题,可以提高代码的健壮性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Action接收参数

    Action接收参数 简述 接收参数 方法一 方法二 方法三 封装集合 传递错误 01 简述 请求的各种信息参数都是在request对象中,不使用Servlet原生API怎么获取参数呢,Struts2中提供了三种方式...(当然原理他还是通过request) 02 方法一 属性封装 直接在Action类中定义与url传入的参数相对应的变量,并设置上set方法,当此url代参数请求后,Action类中对应的变量也就得到了参数的值...03 方法二 表达式封装 创建若干参数形成的对象,Action中直接获取到对象,参数名为“对象名.属性名”对象名对应Action中的,也是需要设置上set方法因为它内部是用反射来获取的。...它会自动把名为student.name和student.age的两个参数封装在student对象中并通过点后的字符来匹配对应的类中属性 创建对象 ? 表单传参 ? Action得到对象 ?...action获取 ? 05 封装成集合 封装成列表 通过中括号中的数字来确定是集合中哪个元素(对象),最后再封装在元素中。中括号中就是集合元素的角标。

    1.6K20

    oozie action参数传递

    1.shell节点参数传递 第一步:在shell节点编辑器中将想要传递的变量输出: # !...第三步:其他节点获取想要的变量: ${wf:actionData(nodeName).variableName} nodeName:想要获取输出变量的节点名称 variableName:想要获取的变量名称...2.java节点参数传递 第一步:上传的jar包中想要输出的变量抛出 try { File file = new File(System.getProperty("oozie.action.output.properties...第三步:其他节点获取想要的变量同上 3.rdms节点参数传递 第一步:在rdms节点编辑器中将想要传递的变量输出: #@output(maxID=max,minID=min) select max(id...${wf:actionData('test').minID} 4.hive节点参数传递 原生oozie并不支持hive节点的捕获参数,可以通过shell节点执行hive sql,然后将需要传递的参数输出

    2K20

    Struts2学习---基本配置,action,动态方法调用,action接收参数 动态方法调用action接收参数

    动态方法调用 定义一个action并不一定实现Action接口,同时也可以不执行execute方法,我们只要将action里面的method属性改为要执行的方法就行,就像这样: action name...(这样的做法叫做约定优于配置) action接收参数 我们怎么样用struts接受客户端发过来的参数呢?下面列举四种方法: ①属性参数输入 <?...username=aa 控制台便会将接受到的username参数输出。 我们可以看到上面使用Action类的属性来接收参数的,struts通过我们给出的set get 方法帮助我们完成赋值。...这种方式主要是应对提交的参数和我们的实体对象不匹配的状况: 比如用户注册的时候会输入第二次密码来进行确认,我们将接受两个密码,所以在这个类中我们接收三个参数:username ,password,confirmPassword...} 当然现在我们有更为先进的技术就是我们完全可以用js来在客户端确认是否相同,然后将数据传输过来。

    1.6K70
    领券