JS问题 如何在JS中修改<URL>中param的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS问题 如何在JS中修改<URL>中param的值相关的知识,希望对你有一定的参考价值。
比如 :
<portlet:renderURL var="renderURL1" >
<portlet:param name="jspPage" value="/html/record.jsp"></portlet:param>
<portlet:param name="code" value="123"/>
</portlet:renderURL>
在JS中如何将名为“code”的值,改为456?
奖励丰厚
对于js而言,它只能看到你的客户端代码,
服务端代码在发送给客户端浏览器之前已经转换为html或js了,
你的这个<portlet:renderURL
控件,发送到客户端浏览器,已经不叫这个名字了,你用浏览器打开这个页面,看看对应的html变成了什么,然后再用js去相应修改你想修改的内容
js是修改不了服务端代码的
你可以把客户端html帖出来,再说出你想改成什么样追问
就在本页改,把 里的“value” 改成“456”
追答你还是没理解,你用浏览器访问页面,
然后按右键,查看源代码,
这个源代码里是没有
的
如果是本页面URL的值是无法修改的,只能获取。
获取本页面param值的方法:
// 假设请求的url为:var id= window.location.toString().getQuery('ID');// 后去url中的ID参数 参考技术B 用location.href.substring(location.href.indexOf("?") + 1)取url存入queryString,然后parameters=queryString.split("&"),循环parameters,
取等号位置pos = parameters[i].indexOf('=');if(pos == -1) continue;
取name和value
paraName = parameters[i].substring(0, pos);
paraValue = parameters[i].substring(pos + 1);
if(paraName == retStr)
return unescape(paraValue);
之后可以根据code=返回的值,用replace("",“cdoe=456”)替换,不知道你是不是要这样的追问
值会变成456?
因为一个值在JS中 所以 我就是想在JS中给param 的value赋值,然后再另一个页面取到这个值,
在 Next.js 中设置和获取 URL 参数
【中文标题】在 Next.js 中设置和获取 URL 参数【英文标题】:Set and get URL parameters in Next.js 【发布时间】:2019-04-11 18:25:13 【问题描述】:我想知道如何在 Next.js 中的 URL 末尾附加一个 ID,以及如何在目标页面中检索它...
<Link href=`/about/$id`><a>About</a></Link>
变成这样……
/about/256983649012
然后在about页面中检索。
我该怎么做?
请记住,我已经知道这种方法...
<Link href= pathname: 'about', query: id: id ><a>About</a></Link>
但我真的不希望链接是这样的about?id=256983649012
【问题讨论】:
【参考方案1】:您正在使用 Next.js,因此实现此目的的正确方法是通过 Next.js 的路由系统。 这是通过文件夹结构完成的。你的看起来像这样:
/pages/ (this is provided by Next.js)
-- /about/
---- [id].js
index.js (homepage, provided by Next.js)
这将允许您实现 /about/256983649012,其中 id 参数为 256983649012。您页面的所有逻辑都进入 [id].js。
Next.js 上的文档非常好。在此处查看有关路由的进一步阅读:https://nextjs.org/docs/routing/introduction
【讨论】:
【参考方案2】:您需要在 server.js / app.js 中定义该 id(我在这里使用 Express):
server.js/app.js
const express = require('express')
const next = require('next')
const port = parseInt(process.env.PORT, 10) || 3000
const dev = process.env.NODE_ENV !== 'production'
const app = next( dev )
const handle = app.getRequestHandler()
app.prepare()
.then(() =>
const server = express()
server.get('/about/:id', (req, res) =>
return app.render(req, res, '/about', id: req.params.id )
)
server.get('*', (req, res) =>
return handle(req, res)
)
server.listen(port, (err) =>
if (err) throw err
console.log(`> Ready on http://localhost:$port`)
)
)
然后在你的关于页面:
关于.js
import React, Component from 'react'
export default class extends Component
static getInitialProps ( query: id )
return aboutId: id
render ()
return <div>
<h1>About #this.props.aboutId</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua.
</p>
</div>
完整示例:here
【讨论】:
当我重新加载页面时,getInitialProps() 函数无法从 url 获取值。请问有什么解决办法吗? 你能提供你的代码吗?或者尝试查看 getInitialProps() 的 props static getInitialProps (props) console.log(props);以上是关于JS问题 如何在JS中修改<URL>中param的值的主要内容,如果未能解决你的问题,请参考以下文章