首頁 >web前端 >js教程 >js實作頁間資料傳遞的程式碼

js實作頁間資料傳遞的程式碼

不言
不言原創
2018-08-13 15:41:302692瀏覽

這篇文章帶給大家的內容是關於js實現實現頁面見資料傳遞的程式碼,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

由於之前面試,被問到過此問題,所以今天特意整理了一下。由於自己技術水準有限,若有錯誤,歡迎提出批評。

本部落格整理了兩種方式從一個頁面層傳遞參數到另一個頁面層。

一. 透過cookie方式

1. 傳遞cookie頁面的html,此處命名為a.html

请输入用户名和密码:
<input id="userName" type="text" />
<input id="passwords" type="password" />
<button id="btn">设置</button>
<button onclick="login()">传递cookie</button>
<button onclick="deletecookie()">删除</button>

2.a.html的js程式碼

//设置cookie
var setCookie = function (name, value, day) {
    //当设置的时间等于0时,不设置expires属性,cookie在浏览器关闭后删除
    var expires = day * 24 * 60 * 60 * 1000;
    var exp = new Date();
    exp.setTime(exp.getTime() + expires);
    document.cookie = name + "=" + value + ";expires=" + exp.toUTCString();
};
//删除cookie
var delCookie = function (name) {
    setCookie(name, &#39; &#39;, -1);
};
//传递cookie
function login() {
    var name = document.getElementById("userName");
    var pass = document.getElementById("passwords");
    setCookie(&#39;userName&#39;,name.value,7)
    setCookie(&#39;password&#39;,pass.value,7);
    location.href = &#39;b.html&#39;
}
function deletecookie() {
    delCookie(&#39;userName&#39;,&#39; &#39;,-1)
}

3. 接受cookie的頁面,此處定義為b.html

<button onclick="getcookie()">获取</button>

4. b.html的js代碼

//获取cookie代码
var getCookie = function (name) {
    var arr;
    var reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
    if (arr = document.cookie.match(reg)){
        return arr[2];
    }
    else
        return null;
};
//点击获取按钮之后调用的函数
function getcookie() {
    console.log(getCookie("userName"));
    console.log(getCookie("password"))
}

二. 透過url傳遞參數的方式

該案例也是從a.html傳遞參數給b.html頁面

1. a.html的程式碼

<input type="text" value="猜猜我是谁">
<button onclick="jump()">跳转</button>

2.點擊跳轉按鈕可以將input標籤的value值傳遞到b.html

function jump() {
    var s = document.getElementsByTagName(&#39;input&#39;)[0];
    location.href=&#39;7.获取参数.html?&#39;+&#39;txt=&#39; + encodeURI(s.value);
}

3. b.html中的程式碼

<p id="box"></p>
var loc = location.href;
var n1 = loc.length;
var n2 = loc.indexOf(&#39;=&#39;);
var txt = decodeURI(loc.substr(n2+1,n1-n2));
var box = document.getElementById(&#39;box&#39;);
box.innerHTML = txt;

三.透過localStorage

透過localStorage傳遞參數類似cookie。但要注意:要存取一個localStorage對象,頁面必須來自同一個網域(子網域無效),使用同一種協議,在同一個連接埠上。

1. a.html中的js檔案

//将localStorage传递到哪个页面
location.href = &#39;b.html&#39;
//设置localStorage
window.localStorage.setItem(&#39;user&#39;,&#39;haha&#39;);

2.b.html中的檔案

<button onclick="getcookie()">获取</button>
function getcookie() {
    //获取传递过来的localStorage
    console.log(window.localStorage.getItem('user'))
}

 相關推薦:

##jQuery中的方法有哪些?jQuery中常用的方法(附程式碼)

js中data物件的詳細用法介紹(附程式碼)#

以上是js實作頁間資料傳遞的程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn