HTML 使用超級(jí)鏈接與網(wǎng)絡(luò)上的另一個(gè)文檔相連。幾乎可以在所有的網(wǎng)頁中找到鏈接。點(diǎn)擊鏈接可以從一張頁面跳轉(zhuǎn)到另一張頁面。
HTML 鏈接
如何在HTML文檔中創(chuàng)建鏈接。
(可以在本頁底端找到更多實(shí)例)
HTML 超鏈接(鏈接)
HTML使用標(biāo)簽 <a>來設(shè)置超文本鏈接。
超鏈接可以是一個(gè)字,一個(gè)詞,或者一組詞,也可以是一幅圖像,您可以點(diǎn)擊這些內(nèi)容來跳轉(zhuǎn)到新的文檔或者當(dāng)前文檔中的某個(gè)部分。
當(dāng)您把鼠標(biāo)指針移動(dòng)到網(wǎng)頁中的某個(gè)鏈接上時(shí),箭頭會(huì)變?yōu)橐恢恍∈帧?/p>
在標(biāo)簽<a> 中使用了href屬性來描述鏈接的地址。
默認(rèn)情況下,鏈接將以以下形式出現(xiàn)在瀏覽器中:
一個(gè)未訪問過的鏈接顯示為藍(lán)色字體并帶有下劃線。
訪問過的鏈接顯示為紫色并帶有下劃線。
點(diǎn)擊鏈接時(shí),鏈接顯示為紅色并帶有下劃線。
注意:如果為這些超鏈接設(shè)置了 CSS 樣式,展示樣式會(huì)根據(jù) CSS 的設(shè)定而顯示。
HTML 鏈接語法
鏈接的 HTML 代碼很簡(jiǎn)單。它類似這樣::
<a href="url">鏈接文本</a>
href 屬性描述了鏈接的目標(biāo)。.
實(shí)例
<a >訪問菜鳥教程</a>
上面這行代碼顯示為:: 訪問菜鳥教程
點(diǎn)擊這個(gè)超鏈接會(huì)把用戶帶到菜鳥教程的首頁。
提示: "鏈接文本" 不必一定是文本。圖片或其他 HTML 元素都可以成為鏈接。
HTML 鏈接 - target 屬性
使用 target 屬性,你可以定義被鏈接的文檔在何處顯示。
下面的這行會(huì)在新窗口打開文檔:
實(shí)例
<a>訪問菜鳥教程!</a>
HTML 鏈接- id 屬性
id屬性可用于創(chuàng)建在一個(gè)HTML文檔書簽標(biāo)記。
提示: 書簽是不以任何特殊的方式顯示,在HTML文檔中是不顯示的,所以對(duì)于讀者來說是隱藏的。
實(shí)例
在HTML文檔中插入ID:
<a id="tips">有用的提示部分</a>
在HTML文檔中創(chuàng)建一個(gè)鏈接到"有用的提示部分(id="tips")":
<a href="#tips">訪問有用的提示部分</a>
或者,從另一個(gè)頁面創(chuàng)建一個(gè)鏈接到"有用的提示部分(id="tips")":
<a >
訪問有用的提示部分</a>
基本的注意事項(xiàng) - 有用的提示
注釋: 請(qǐng)始終將正斜杠添加到子文件夾。假如這樣書寫鏈接:,就會(huì)向服務(wù)器產(chǎn)生兩次 HTTP 請(qǐng)求。這是因?yàn)榉?wù)器會(huì)添加正斜杠到這個(gè)地址,然后創(chuàng)建一個(gè)新的請(qǐng)求,就像這樣:。
圖片鏈接
如何使用圖片鏈接。
在當(dāng)前頁面鏈接到指定位置
如何使用書簽
跳出框架
本例演示如何跳出框架,假如你的頁面被固定在框架之內(nèi)。
創(chuàng)建電子郵件鏈接
本例演示如何如何鏈接到一個(gè)郵件。(本例在安裝郵件客戶端程序后才能工作。)
建電子郵件鏈接 2
本例演示更加復(fù)雜的郵件鏈接。
HTML 鏈接標(biāo)簽
標(biāo)簽 | 描述 |
---|---|
<a> | 定義一個(gè)超級(jí)鏈接 |
如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!
你的網(wǎng)站如何接入QQ、微信登錄:一站式社交賬號(hào)登錄實(shí)戰(zhàn)指南
**引言:擁抱社交網(wǎng)絡(luò),無縫對(duì)接用戶體系**
在現(xiàn)代Web開發(fā)中,為了提高用戶注冊(cè)和登錄體驗(yàn),越來越多的網(wǎng)站開始支持第三方社交賬號(hào)登錄。其中,QQ和微信作為中國(guó)最主流的社交平臺(tái),其龐大的用戶基數(shù)使得它們成為眾多網(wǎng)站首選的快速登錄方式。本篇文章將以詳盡的技術(shù)解析和實(shí)例代碼,帶你一步步實(shí)現(xiàn)網(wǎng)站接入QQ和微信登錄的功能,讓用戶能一鍵輕松登錄。
---
### **一、了解OAuth 2.0協(xié)議**
**標(biāo)題:掌握OAuth 2.0,理解第三方登錄原理**
QQ和微信登錄均基于OAuth 2.0協(xié)議,該協(xié)議是一種授權(quán)機(jī)制,允許用戶讓第三方應(yīng)用訪問他們存儲(chǔ)在某一服務(wù)提供商的應(yīng)用程序上的私密資源(如個(gè)人信息),而不必向第三方應(yīng)用透露自己的賬戶憑據(jù)。
**核心步驟**:
1. 應(yīng)用注冊(cè)并獲取AppID和AppSecret。
2. 用戶同意授權(quán)。
3. 第三方應(yīng)用通過授權(quán)碼或直接獲取Access Token。
4. 使用Access Token獲取用戶基本信息。
---
### **二、接入QQ登錄**
**標(biāo)題:搭建QQ登錄流程及代碼實(shí)現(xiàn)**
1. **申請(qǐng)QQ互聯(lián)開放平臺(tái)賬號(hào)與應(yīng)用創(chuàng)建**
- 注冊(cè)并登錄QQ互聯(lián)開放平臺(tái)(https://connect.qq.com/),創(chuàng)建新應(yīng)用,獲取到APP ID和APP Key(即AppID和AppSecret)。
2. **網(wǎng)頁端QQ登錄按鈕集成**
```html
<!-- 引入QQ登錄JS SDK -->
<script src="http://connect.qq.com/widget/sdk.js"></script>
<!-- 創(chuàng)建登錄按鈕 -->
<button id="qq-login-btn">使用QQ登錄</button>
<script>
document.getElementById('qq-login-btn').addEventListener('click', function() {
QC.Login({
btnId: "qq-login-btn",
scope: "get_user_info", // 請(qǐng)求用戶授權(quán)范圍
success: function(authResult) {
// 成功獲取授權(quán),進(jìn)一步獲取Access Token
QC.api('get_login_info', {}, function(result) {
// 在這里獲取到用戶的OpenID和Access Token
var accessToken = result.access_token;
var openId = resultopenid;
// 發(fā)送請(qǐng)求至您的服務(wù)器,完成登錄邏輯
});
},
fail: function(error) {
console.log('QQ登錄失敗:' + error);
}
});
});
</script>
```
3. **服務(wù)器端驗(yàn)證與用戶信息獲取**
- 服務(wù)器端使用獲取的Access Token向騰訊服務(wù)器請(qǐng)求用戶信息,并在本地系統(tǒng)中綁定或創(chuàng)建用戶賬號(hào)。
---
### **三、接入微信登錄**
**標(biāo)題:微信網(wǎng)頁授權(quán)與登錄實(shí)現(xiàn)**
1. **微信公眾號(hào)或小程序注冊(cè)與配置**
- 注冊(cè)微信公眾平臺(tái)賬號(hào),創(chuàng)建應(yīng)用獲取AppID和AppSecret。
2. **引入微信JS-SDK及初始化**
```html
<!-- 引入微信JS-SDK -->
<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
<script>
wx.config({
debug: false,
appId: 'YOUR_APP_ID',
timestamp: YOUR_TIMESTAMP,
nonceStr: 'YOUR_NONCE_STR',
signature: 'YOUR_SIGNATURE',
jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage', 'login']
});
wx.ready(function () {
document.getElementById('wechat-login-btn').addEventListener('click', function() {
wx.login({
success: function(res) {
var code = res.code; // 獲取code
// 發(fā)送code到服務(wù)器,換取Access Token和OpenID
},
fail: function(err) {
console.error('微信登錄失敗:', err);
}
});
});
});
</script>
<button id="wechat-login-btn">使用微信登錄</button>
```
3. **服務(wù)器端調(diào)用微信接口驗(yàn)證**
- 使用從客戶端發(fā)送過來的`code`向微信服務(wù)器請(qǐng)求Access Token和OpenID,再通過Access Token獲取用戶基本信息。
---
### **四、安全與注意事項(xiàng)**
**標(biāo)題:確保接入過程中的安全與合規(guī)**
- **保證用戶數(shù)據(jù)安全**:在交換、存儲(chǔ)和使用用戶信息的過程中,務(wù)必遵守相關(guān)法律法規(guī),對(duì)用戶數(shù)據(jù)加密傳輸和妥善保管。
- **刷新Access Token**:Access Token具有有效期,及時(shí)刷新并更新數(shù)據(jù)庫中的記錄。
- **異常處理**:設(shè)計(jì)完善的錯(cuò)誤處理機(jī)制,包括但不限于授權(quán)失敗、網(wǎng)絡(luò)異常等情況。
**結(jié)論:**
通過以上詳細(xì)的步驟與代碼示例,您已掌握了如何在網(wǎng)站中實(shí)現(xiàn)QQ和微信登錄功能。然而,接入第三方登錄不僅僅是技術(shù)上的對(duì)接,更關(guān)乎用戶體驗(yàn)、用戶隱私保護(hù)以及遵循相關(guān)法規(guī)政策。在實(shí)施過程中,不斷優(yōu)化和完善登錄流程,將是打造優(yōu)質(zhì)Web產(chǎn)品的重要環(huán)節(jié)。愿這份指南能助您在實(shí)踐過程中少走彎路,迅速實(shí)現(xiàn)社交賬號(hào)登錄功能,提升用戶黏性和活躍度。
望大家擁有愛情
這周過完就2022年了,為了幫助我的室友在年末順利脫單,22年有個(gè)完美的愛情,特地找了10款不同的表白代碼幫助她脫單,廢話不多說,直接看效果。(文末有源碼獲取方式)
故事的開始
故事的結(jié)束
故事結(jié)束了,下面我們一起來看下干貨,喜歡哪個(gè)就拿哪個(gè),總有一個(gè)適合的。
1、愛心樹
// 修改文字部分
<span class="say"> ? My crush story</span><br>
<span class="say"> </span><br>
<span class="say"> For xxx</span><br>
<span class="say"> </span><br>
<span class="say"> ? 不經(jīng)意相識(shí),或許是緣分,或許是注定的。</span><br>
<span class="say"> </span><br>
<span class="say"> ? 第一次認(rèn)識(shí)你,感覺很親切,總想多看你一眼。</span><br>
<span class="say"> </span><br>
<span class="say"> ? 就算因?yàn)檎`會(huì)而淡漠,我還在想念你的好。</span><br>
<span class="say"> </span><br>
<span class="say"> ? 那次你我共同的朋友告訴我,你對(duì)我的印象。</span><br>
<span class="say"> </span><br>
<span class="say"> ? 之后不敢再出現(xiàn)在你的面前,或許你是對(duì)的。</span><br>
<span class="say"> </span><br>
<span class="say"> ? 我會(huì)默默守候著你。</span><br>
<span class="say"> </span><br>
<span class="say"> ? You are my crush girl..永遠(yuǎn)..</span><br>
<span class="say"> </span><br>
<span class="say"><span class="space"></span> ------ TTFY ------</span>
...
//修改時(shí)間部分
var together = new Date();
together.setFullYear(2018, 05, -11); //剛在一起的時(shí)間,時(shí)間年月日
2、代碼表白式+愛心
// 修改文字內(nèi)容
<span class="space"/><span class="comments">* 昨晚午夜的初次相遇,</span><br />
<span class="space"/><span class="comments">* 所以我寫一些代碼來顯示我對(duì)你的愛.</span><br /> <span class="space"/><span class="comments">*/</span><br />
Boy i = <span class="keyword">new</span> Boy(<span class="string">"BF"</span>);<br />
Girl u = <span class="keyword">new</span> Girl(<span class="string">"GF"</span>);<br />
<span class="comments">// On October 15, 2019, I told you I love you.. </span><br />
i.love(u);<br />
<span class="comments">// 但是,我不知道你對(duì)我感覺如何
?</span><br />
u.sayOtherthing();<br />
<span class="comments">// 你是否對(duì)我這個(gè)突然間冒出來的人有好感呢?</span><br />
<span class="keyword">var</span> reason=i.ask(u);<br />
<span class="comments">// 我希望你能給我機(jī)會(huì)和時(shí)間讓我們彼此了解 .</span><br />
$("body").append(reason);<br />
<span class="comments">// 別擔(dān)心,我不是壞人!我要保護(hù)你.</span><br />
<span class="comments">// 愿上天能賜給我們緣分.</span><br />
i.takeCareOf(u);<br />
<span class="comments">// 我會(huì)一直等待,直到你冰封的心融化,因?yàn)槲矣行判?.</span><br />
<span class="keyword">boolean</span> isAccept = <span class="keyword">false</span>;<br />
<span class="keyword">while</span> (isAccept) {<br />
<span class="placeholder"/>i.waitFor(u);<br />
<span class="placeholder"/><span class="comments">// 我認(rèn)為這是一個(gè)重要的決定</span><br />
<span class="placeholder"/><span class="comments">// 讓我?guī)椭汜寫堰^去不開心的事情.</span><br />
<span class="placeholder"/>isAccept = u.thinkOver();<br />
}<br />
<span class="comments">// 然后開始我們的開始,和你幸福的生活.</span><br />
...
<div id="messages">
xxx, I have fallen in love with you //修改為xxx為你心愛的她
<div id="loveu">
Love u forever and ever.<br/>
<div class="signature">- TTFY</div>
3、小文章+愛心
// 修改文章內(nèi)容
<span class="comments">親愛的:xxx</span><br>
<span class="space"><span class="comments">好想你!</span></span><br>
<span class="space"><span class="comments">只有在你的微笑里,我才有呼吸,還貪戀著你的風(fēng)情,誘惑著你的神秘,埋葬了我的愛情,脈脈之情如一溪春水,快刀難斬?cái)啵S著天各一方的時(shí)間越來越長(zhǎng),我的思念也越來越深,我很想找一個(gè)萬籟俱寂的深夜或一個(gè)陽光明媚的早晨,把許多心底的惆悵、寂寞向你傾訴。親愛的,我們的故事是最感人,最真實(shí)的,早安,我永恒的愛人,雖然我尚未起床,但思想已經(jīng)飛到你的身邊來了,不管今世也好來世也好,我所要的只有你。我要與你同坐在有著月光的草坪上,一起遙望著繁星點(diǎn)綴的夜空,講述那人間古老的愛情神話。人生不止,寂寞不已。寂寞人生愛無休,寂寞是愛永遠(yuǎn)的主題。</span><br>
<span class="space"><span class="comments">親愛的,在這沒有月的漆黑的夜里,我獨(dú)自坐在窗前寫著這封信,希望睡前可以吻你;希望睡時(shí)可以抱著你;希望醒來可以看到_</span></span></span></div>
<div id="loveHeart">
<canvas id="garden" width="670" height="625"></canvas>
<div id="words" style="position: absolute; top: 260.5px; left: 755px;">
<div id="messages" style="display: block;">
親愛的, 這是我們認(rèn)識(shí)的第
<div id="elapseClock"><span class="digit">0</span> days <span class="digit">19</span> hours <span class="digit">44</span> minutes <span class="digit">40</span> seconds</div>
</div>
<div id="loveu" style="display: block;">
永遠(yuǎn)愛你,一輩子,永不變!<br>
...
// 修改在一起的時(shí)間
var together = new Date();
together.setFullYear(2019, 5, 20); //剛在一起的時(shí)間,時(shí)間年月日
4、死皮賴臉式
// html中代碼修改
<p>我觀察你很久了</p>
<h1>小姐姐做我對(duì)象好不好?</h1>
<img src="images/1.jpg">
<div class="bottom">
<div class="left" id="hao">好</div>
<div class="right" id="buhao">不好</div>
</div>
...
// js中代碼修改
if(Dianji==1){
alert("小姐姐在考慮一下唄");
}else if(Dianji==2){
alert("你是我見過的最帥氣善良可愛的男孩");
}else if(Dianji==3){
alert("一生一世愛你");
}else if(Dianji==4){
alert("家務(wù)我全干");
}else if(Dianji==5){
alert("不藏私房錢");
}else if(Dianji==6){
alert("房子寫你名");
}else if(Dianji==7){
alert("工資全上交");
Dianji=1;
}
}
hao.οnclick=function(){
alert("小姐姐終于同意了,我愛你么么噠");
}
5、旋轉(zhuǎn)的照片墻
6、千紙鶴
7、文字愛心
// 修改生成愛心的文字
<textPath xlink:href="#partialPath" startOffset="12">What's in a name? That which we call a rose By any other word would smell as sweet...</textPath>
8、煙花+蛋糕
9、紅玫瑰
10、死皮賴臉+煙花
// 修改文字內(nèi)容
<script type="text/javascript">
$(function() {
$('#yes').click(function(event) {
modal('我就知道小姐姐您一定會(huì)愿意的。(^_^)', function() {
$('.page_one').addClass('hide');
$('.page_two').removeClass('hide');
// typeWrite();
fireworks();
});
});
$('#no').click(function(event) {
modal('明人不說暗話!', A);
});
});
function A() {
modal('我喜歡你!', B);
}
function B() {
modal('我知道你在等我這一句話', C);
}
function C() {
modal('請(qǐng)您不要拒絕我', D);
}
function D() {
modal('拒絕我,不存在的', E);
}
function E() {
modal('這輩子都不可能讓你離開我', F);
}
function F() {
modal('跟我走吧', G);
}
function G() {
modal('房產(chǎn)證上寫你名', H);
}
function H() {
modal('我會(huì)做飯', I);
}
function I() {
modal('愛你。么么噠!', J)
}
function J() {
modal('行,我們?nèi)ッ裾值怯洶?#39;, function() {
fireworks();
});
}
直接txt打開修改文件中文字即可,不會(huì)的可以私信交流溝通,或者發(fā)文字直接幫改。
只要私信過來,都免費(fèi)送源碼(當(dāng)然我這也希望大家走過路過,點(diǎn)個(gè)贊,收藏下,轉(zhuǎn)發(fā)下),祝大家早日脫單,有對(duì)象的祝更加甜蜜。
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。