[英]How can I pass data through a link using just javascript and HTML?
我有一個網站,其中有一個名稱列表,單擊名稱時需要打開一個新頁面。 我需要此頁面來顯示單擊的名稱中的數據,因此我需要通過鏈接傳遞一些數據。 這可以用PHP完成,但是我可以只用HTML和Javascript嗎? 必須有一種無需服務器端邏輯即可處理動態內容的方法。
編輯:我想澄清一下,該網站的全部目的是以更簡化的方式使用現有網站的API。 我只想調整它們的設置,因此編寫服務器邏輯似乎過多,因為我不需要持久性數據(為此使用API)。 這個問題是關於我應該如何在此自定義前端的各個頁面之間傳遞API數據。
您可以這樣設置內聯的uri參數:
<a href="example.com?name=sarah"> Sarah</a>// add a '?' followed by any number of parameters in the format of 'key=value'
您可以使用問號來表示變量的開頭,然后可以添加任意數量的變量(有一個限制,但數量非常高)
example.com?key1=value1+key2=value2 ...
看一下這個方法:
您可以將查詢字符串中的數據傳遞為:
您可以使用此函數從查詢字符串獲取數據:
function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
getUrlVars()函數將返回:
{
"Name" : "About"
}
現在,您可以使用javascript這樣的任何地方將其打印:
document.getElementById('p').innerHTML(getUrlVars()["name"]);
要么
document.write(getUrlVars()["name"]);
有一些選項,但是總的來說,您認為可以更改沒有服務器邏輯的服務器發送的消息是不合邏輯的。 服務器將使用什么邏輯進行更改?
但是,如果您要提供同一個頁面,而只是在頁面上更改名稱,您可以做的一件事就是使該頁面向下發送靜態內容,而無需在任何地方添加名稱,只需將
<span class='name-of-linked-user'></span>
名稱應出現的任何位置。 那時,讓john doe的鏈接轉到“ page.html?name = john%20doe”,然后向頁面添加一些靜態jquery。 從http://www.jquerybyexample.net/2012/06/get-url-parameters-using-jquery.html復制以下代碼的get url參數代碼:
function GetURLParameter(sParam)
{
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++)
{
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam)
{
return sParameterName[1];
}
}
}
然后一個簡單的jquery循環遍歷靜態內容,使其變得“動態”
$('.name-of-linked-user').each(function(){
$(this).text(GetURLParameter('name'));
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.