Javascript 添加带有URL元素的动态内容
我有一个问题,我想知道这是否可能。我想通过更改URL中的id,将内容动态添加到html页面中 我的意思是,例如,我想在网页上添加一个人的名字: 首先,我的页面是:Javascript 添加带有URL元素的动态内容,javascript,url,dynamic,Javascript,Url,Dynamic,我有一个问题,我想知道这是否可能。我想通过更改URL中的id,将内容动态添加到html页面中 我的意思是,例如,我想在网页上添加一个人的名字: 首先,我的页面是: 您好欢迎来到我们的页面 我想得到的结果是,通过编写以下url:代码将自身更新为: <p> Hello <span id="YourName">YourName</span> welcome to our page</p> 您好您的名字欢迎来到我们的页面 因此,
您好欢迎来到我们的页面
我想得到的结果是,通过编写以下url:代码将自身更新为:
<p> Hello <span id="YourName">YourName</span> welcome to our page</p>
您好您的名字欢迎来到我们的页面
因此,只要修改URL,span的id和内容就会更新。我真的不知道如何做到这一点。我想知道是否可以通过在url上键入id来动态地为span指定id,然后检索此id并将其用作span的值。您可以使用
window.location.hash
从url获取id值
此外,您可以使用hashchange
窗口事件来查看这些更改
函数showHash(){
const newHash=window.location.hash.replace(“#”,”);
const resultSpan=document.querySelector(“.hash值”);
resultSpan.id=newHash;
resultSpan.innerHTML=newHash;
}
addEventListener(“hashchange”,showHash,false);
addEventListener(“DOMContentLoaded”,showHash)代码>
URL中的当前哈希为:
您可以使用JavaScript获取当前链接,例如:
让YourLink=window.location.href;
让startingPoint=YourLink.indexOf(“#”);
让endingPoint=YourLink.indexOf(“/”);//如果名称不是链接上的最后一个内容
让NameYouWant=YourLink.substring(起点、终点);
//所以“NameYouWant”将是您需要使用的名称
如果您在链接中使用“#”作为每个名字的起始点,希望这会有所帮助。也许您可以试试这个
let splits = window.location.href.split("#");
let span = document.getElementsByTagName("p")[0].getElementsByTagName("span")[0];
span.innerText = splits[splits.length - 1];
span.id = splits[splits.length - 1];
谢谢您的回答,但我想我应该更新我的问题。您是否在本地测试了代码片段?这就是你需要实现的吗?意思是当url为www.mypage.com/index#HerName时,内容将是你好HerName欢迎来到我们的页面
?这正是我试图实现的。所以spanid
会随着标签的变化而变化吗?是的!我想知道这是否可能?是的,请检查下面的我的答案谢谢你的答案,但是我如何使用它来更新我的span的内容?@mscmdaddcts你给span的id是这样的:
,然后你添加$('#mySpan')[0]。innerHTML=NameYouWant代码>到您的脚本,P.S抱歉回答晚了
let splits = window.location.href.split("#");
let span = document.getElementsByTagName("p")[0].getElementsByTagName("span")[0];
span.innerText = splits[splits.length - 1];
span.id = splits[splits.length - 1];