搜尋
首頁web前端js教程JavaScript有用的超鏈接

JavaScript有用的超鏈接

>您在那裡很樂意瀏覽一個網站;您單擊一個鏈接,突然發現自己在另一個網站上下載文件。那裡發生了什麼?煩人,不是嗎?必須有一種更好的方法向您的訪問者指示鏈接要去的地方以及哪種類型的文件。因此,為了幫助解決這個小小的煩惱,我寫了一些JavaScript和CSS,這些JavaScript和CSS在鏈接之後添加了很小的圖標(取決於文件擴展名和位置),以向用戶指示他們將要加載的文檔的類型。

JavaScript有用的超鏈接

>您可以在此處下載代碼,並查看示例。

>

鑰匙要點

    >文章提供了JavaScript和CSS解決方案,可在超鏈接旁邊添加圖標,指示鏈接導致的文件類型或鏈接導致外部站點。該解決方案旨在通過提供清晰的視覺提示來增強用戶體驗。
  • >該解決方案設計為簡單,易於使用,並且與包括IE6在內的所有現代瀏覽器兼容。當禁用CSS或JavaScript時,它會優雅地降低,並將文件使用限制為一個JavaScript文件和一個CSS文件。 >
  • 該解決方案涉及創建JavaScript文件(ikonize.js)和CSS文件(ikonize.css)。 JavaScript文件確定每個超鏈接的文件擴展名,並添加適當的CSS類和圖標。 CSS文件包含圖標類。
  • >
  • >解決方案有局限性:它不識別基於查詢字符串的導航鏈接,並且鏈接必須具有文件擴展名才能分配圖標(除非它是外部站點)。如果CSS被禁用,僅將顯示外部鏈接圖標,並且JavaScript被禁用,則頁面沒有可見的更改。
  • 簡短
創建此功能時的主要考慮因素是:

>簡單性 - 必須易於使用

    >
  1. 優雅的退化 - 在CSS或/和JavaScript被禁用的情況下
  2. 最小使用文件 - 只有一個JavaScript和一個CSS文件
  3. >
  4. >使其盡可能地插入插件 - 因此可以快速添加到網站
  5. 限制代碼的整體量
  6. 與所有現代瀏覽器(包括IE6

  7. )的兼容性
  8. >

  9. 為什麼要從僅CSS的解決方案轉移?
  10. >
  11. >您已經可以使用屬性選擇器在CSS中執行此操作。這是一個示例:
>那麼,當大多數現代瀏覽器都使用CSS顯示圖標時,您為什麼要使用腳本?
答案很簡單:IE6。所有體面的瀏覽器都支持CSS3屬性選擇器…除了IE6。 CSS的這一點腳本使IE6發揮得很好。實際上,它甚至可以在IE5.5。
靈感和信用

>在開始之前,我想承認Mark James在Famfamfam上的優秀和免費的絲綢圖標,我們將在本文中使用。

>

JavaScript有用的超鏈接

>此外,值得信用的信用:本文的靈感來自亞歷山大·凱撒(Alexander Kaiser)與CSS的Iconize TextLinks的啟發,這反過來又受到了CSS Guy與CSS展示超鏈接提示的啟發。此外,我使用了Sitepoint自己的詹姆斯·愛德華茲(James Edwards)撰寫的幾個出色的功能,還有一些從凱文·揚克(Kevin Yank)和卡梅倫·亞當斯(Cameron Adams)撰寫的核心JavaScript庫中,並在SitePoint Book中不朽,只需JavaScript。

那麼如何工作?
>
嗯,簡而言之:我們採用頁面中的所有鏈接,計算出鏈接到的文件擴展名,然後在鏈接之後添加適當的圖標。好的。

為使其全部起作用,涉及三個文件:

>

    html頁麵包含鏈接,index.html
  1. >
    css文件包含圖標類,ikonize.css

  2. >將CSS類和圖標添加到鏈接的JavaScript文件,
  3. 快速啟動方法
現在,如果您想避開何處和位置,並且只想將其添加到您的頁面中,則是簡短的版本:

    >在頁面標題中將鏈接添加到JavaScript和CSS文件(更改文件引用以適合您的站點設置)。
  1. >

  2. >將您的圖標文件夾放在您的網站上,並確保在ikonize.css文件中正確的URL引用。
    >從腳本標籤中呼叫JavaScript函數ikonize在關閉的主體標籤之前包含的腳本標籤,例如:
  3. >


  4. 看到 - 我告訴過你這很容易使用!
  5. 為了簡單起見,我選擇了DOM加載後從HTML中調用該功能。還有其他方法可以使用JavaScript實現此目的,但它們超出了本文的範圍。
完整的說明

讓自己感到舒適,我們將深入研究內部的工作。

配置

>以保持簡單的精神,大多數設置已經為您完成。如果需要更改圖標或文件擴展名,則只需更改配置即可。有兩個可以進行這些更改的地方:JavaScript(ikonize.js)和CSS文件(ikonize.css)。
> configure ikonize.js

在文件頂部,您會看到所有配置變量:classprefix,classexternal和classiconloc。

哪些鏈接將收到圖標?

>

要定義鏈接所輸入的文件類型,我們將查看文件擴展名。文件類型分為兩組:具有唯一圖標的文件,例如洪流文件,以及將共享相同圖標但具有不同文件擴展名的那些圖標,例如flash文件(.fla和.swf)。

>分組分組的共享相同圖標的文件擴展名可以為您節省數百個CSS類和圖標。為了實現這一目標,我創建了兩個陣列。

>第一個數組,單個ClassArray,將所有鏈接的文件擴展包含單個圖標。 CSS類名稱的基礎與文件擴展名相同。也就是說,文本文件用“ txt”引用,CSS類名稱是ClassPrefix(較早設置)和“ TXT”基礎CSS類名稱,在這種情況下,將CSS類稱為“ IKON_TXT”。

第二個數組,ClassArray實際上是一個多維陣列,但不要讓您失望。基本上,這是根據我們想使用的圖標類型進行分組的一組單獨陣列。此數組中的第一個項目是單個ClassArray(此數組必須始終是第一個數組)。以下數組與先前的數組相似,其中一個重要區別:每個數組中的第一個項目是將要使用的CSS類的名稱,以下項目是需要該類的文件擴展名。在下面的示例中,.swf和.fla文件擴展名將與“ flash” CSS類關聯。
a[href$='.doc'] { <br>
  display: inline-block; <br>
  padding-left: 16px; <br>
  background: transparent url(images/icon_doc.gif) center right no-repeat; <br>
}

注意:文件擴展名排除點,即xls而不是.xls。
classPrefix is the prefix you want to give the individual CSS classes. Use this to prevent any conflicts with any existing CSS classes. The default is iKon_.

為了最大的可移植性,實際使用的CSS類名稱將具有一個前綴,例如“ ikon_”,我們先前配置了,但是在這些數組中,我們始終

>不包括前綴。 因此,Flash CSS類總是稱為“ flash”,而不是“ ikon_flash”。

>外部鏈接

>要確定鏈接是否是外部站點,我們需要知道當前頁面的主機名。

為此,我們使用:

>這是當前文檔的位置,並使用合格Href功能獲取域名,以確保我們具有完全合格的地址和Parseurl功能以獲取主機名。 (這兩個功能都是由我們的居民JavaScript Guru,BrotherCake撰寫的,並在他的博客文章中涵蓋了)。 稍後,當我們為外部鏈接添加類時,我們將使用此主機名來確定該鏈接是否在我們的網站外部。

實際上完成工作的代碼

>
classExternal is the name of the CSS class you want to use to show a link to an external site.
現在,我們需要使用document.getElementsbytagname(“ a”)從頁面中獲取所有鏈接,並確定鏈接的文件擴展。

我們通過再次使用parseurl並再次使用限定性來執行此操作。

首先,以a元素的href值:

linkhref = aelements [iv] .href;

接下來,解析值以獲取有關鏈接的更多信息:

> ourl = parseurl(premifyhref(linkHref));

然後獲取鏈接的擴展名:
fileext = ourl.extension;

然後,我們需要循環瀏覽這些鏈接,並確定它們是否需要圖標。這就是它開始變得更加棘手的地方。我們需要循環遍歷分類及其包含的每個數組。我們通過在循環中運行循環來做到這一點。是的,這是一個循環,循環中的循環! 這條毛茸茸的代碼看起來像這樣:

a[href$='.doc'] { <br>
  display: inline-block; <br>
  padding-left: 16px; <br>
  background: transparent url(images/icon_doc.gif) center right no-repeat; <br>
}
此鏈接是否需要圖標?

>

>要找出是否需要添加圖標,我們將將鏈接的文件擴展與數組中列出的每個擴展名進行比較。

classPrefix is the prefix you want to give the individual CSS classes. Use this to prevent any conflicts with any existing CSS classes. The default is iKon_.
classExternal is the name of the CSS class you want to use to show a link to an external site.
>鏈接到外部站點

>解決鏈接是否與外部站點的鏈接只是一種比較我們先前在配置區域中設置的URL確定的URL主機名的情況。 >

如果是真的,我們將在錨點中附加一個新的圖像元素,添加源和ID,然後為圖像添加一個alt and Title屬性。我們添加了額外的圖標,而不僅僅是分配一個類以清楚地表明此鏈接已列為另一個站點,並在圖標中添加標題和alt屬性。
externalIconLoc is the location of the image to use for the external icon.
>

CSS類
IndividualClassArray = Array('txt', 'xls', 'css', 'torrent');

現在回到CSS文件。

>

這是我們的CSS類,將圖標添加到.doc文件中。請注意,類名稱為“ ikon_”,然後是文件擴展名為“ doc”。該課程基本上在頂部和底部以及鏈接的右側放了一點填充物。然後,它將圖標的背景圖像添加到該空間中。

對於我們的外部鏈接圖標,我們將使用略有不同的類結構。我們添加一些填充頂部和底部以確保我們的圖標無邊界。
classArray = Array(  <br>
IndividualClassArray,  <br>
Array('flash', 'swf', 'fla')  <br>
);
>

如果您更改了ClassPrefix變量,請不要忘記更改這些類名稱以匹配。
url = parseURL(qualifyHREF(document.location.href)).hostname;
>

限制

>該鏈接必須具有文件擴展名才能將圖標分配給鏈接(除非是外部站點)。該腳本還無法識別基於查詢字符串的導航鏈接。如果CSS被禁用,則只會顯示外部鏈接圖標,如果禁用JavaScript,則頁面沒有可見的更改。

結論

ikonize是一種快速簡便的方法,可以在鏈接後添加視覺上有意義的圖標。該腳本在IE5.5中起作用,可以獨立於CSS3屬性選擇器工作。如您所料,該腳本降低了良好,並且很容易配置。希望您發現它有用!
>

>關於JavaScript中的超鏈接的常見問題

>如何使用JavaScript?

創建超鏈接,使用JavaScript創建超鏈接涉及操縱文檔對像模型(DOM)。您可以創建一個新的錨點元素,設置其HREF屬性,然後將其附加到文檔正文上。這是一個簡單的示例:

var link = document.createelement('a'');
link.href =“ https://www.example.com”;
link.textContent =“ go xplox example.com”;我們要鏈接到的頁面的URL。然後,我們設置鏈接的文本,最後將鏈接附加到文檔正文。
>
>如何使用JavaScript?

更改超鏈接的目標?此屬性指定打開鏈接文檔的位置。可以將其設置為“ _blank”,以在新窗口或選項卡中打開文檔,“ _self”,以與單擊的同一幀打開文檔(默認為默認),“ _parent”,以在父幀中打開文檔,或在“ _top”中打開文檔,以在窗口的整體中打開文檔。以下是一個示例:

var link = document.createelement('a'');

link.href =“ https://www.example.com”;
鏈接>屬性設置為“ _blank”,這意味著該鏈接將在新窗口或選項卡中打開。

>我如何使用JavaScript?
>使用“標題”屬性添加超鏈接標題。此屬性提供了有關鏈接的其他信息,例如鍊接文檔的名稱,並且當鼠標在鏈接上移動時通常以工具提示表示。以下是一個示例:

var link = document.createelement('a'');

link.href =“ https://www.example.com”; >

>如何使用JavaScript?
​​
如何使用“ removeChild”方法刪除超鏈接。此方法刪除了指定元素的指定子節點。這是一個示例:

var link = document.getElementById('myLink');
link.parentnode.removechild(link);
在此代碼中,我們首先通過其ID獲取鏈接元素,然後從其父節點中刪除它。

>如何使用JavaScript?

更改超鏈接的文本?此屬性設置或返回指定節點的文本內容及其所有後代。以下是一個示例:

var link = document.getElementById('myLink');
link.textContent =“新鏈接text”;
在此代碼中,我們首先通過其ID獲取鏈接,然後將其文本內容更改為“新鏈接”。 “樣式”屬性。此屬性用於從元素添加,更改或刪除內聯樣式。這是一個示例:

link.style.color =“ red”;

link.style.style.fontsize =“ 20px”; 在此代碼中,我們首先通過其ID來獲得鏈接,然後更改其顏色,然後將其 pix。使用JavaScript?

>使用“ AddeventListener”方法將事件偵聽器添加到超鏈接中。此方法將事件處理程序附加到指定元素。以下是一個示例:

var link = document.getElementById('myLink');

link.addeventListener('click'click',function(){alert('您單擊link!'link!'');

});

});

}); 在此代碼中,我們首先通過link exter a單擊“”事件,然後將事件連接到一個事件,然後將其附加到事件。當單擊鏈接時,將顯示一個警報框。
>
>如何防止超鏈接使用JavaScript使用JavaScript?
var link = document.getElementById('myLink');
link.addeventListener('click'click',function(event){

event.preventdefault()元素通過其ID,然後將單擊事件偵聽器附加到它。當單擊鏈接時,它將不會遵循URL,並且將顯示一個警報框。

>

>如何創建一個使用JavaScript下載文件的超鏈接?


>

>

下載可以使用“下載”屬性創建文件的超鏈接。此屬性指定當用戶單擊超鏈接時,將下載目標。以下是一個示例:

var link = document.createelement('a'');

link.href =“ https://www.example.com/myfile.pdf"; link.download =” myfile.pdf =“ myfile.pdf” file“;document.body.body.appendchild(link);

在此代碼中,我們首先創建一個新的錨點元素,然後將其HREF屬性設置為我們要下載的文件的URL。然後,我們將下載屬性設置為文件的名稱,最後將鏈接附加到文檔正文中。

>如何創建一個超鏈接,該超鏈接使用JavaScript打開電子郵件客戶端?

>可以使用HREF屬性中的“ MailTo:”協議創建電子郵件客戶端的超鏈接。該協議通過一條新消息打開用戶的電子郵件客戶端,可以發送。以下是一個示例:

var link = document.createelement('a'');
link.href =“ mailto:example@example.com”;
link.textcontent =“ emage me”; emage me';
document.body.body.body.appendchild.appendchild(link); link); link); 我們首先創建一個新的錨點,然後設置其設置HER, “ mailto:example@example.com”。然後,我們設置了鏈接的文本,並最終將鏈接附加到文檔正文。

以上是JavaScript有用的超鏈接的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
JavaScript應用程序:從前端到後端JavaScript應用程序:從前端到後端May 04, 2025 am 12:12 AM

JavaScript可用於前端和後端開發。前端通過DOM操作增強用戶體驗,後端通過Node.js處理服務器任務。 1.前端示例:改變網頁文本內容。 2.後端示例:創建Node.js服務器。

Python vs. JavaScript:您應該學到哪種語言?Python vs. JavaScript:您應該學到哪種語言?May 03, 2025 am 12:10 AM

選擇Python還是JavaScript應基於職業發展、學習曲線和生態系統:1)職業發展:Python適合數據科學和後端開發,JavaScript適合前端和全棧開發。 2)學習曲線:Python語法簡潔,適合初學者;JavaScript語法靈活。 3)生態系統:Python有豐富的科學計算庫,JavaScript有強大的前端框架。

JavaScript框架:為現代網絡開發提供動力JavaScript框架:為現代網絡開發提供動力May 02, 2025 am 12:04 AM

JavaScript框架的強大之處在於簡化開發、提升用戶體驗和應用性能。選擇框架時應考慮:1.項目規模和復雜度,2.團隊經驗,3.生態系統和社區支持。

JavaScript,C和瀏覽器之間的關係JavaScript,C和瀏覽器之間的關係May 01, 2025 am 12:06 AM

引言我知道你可能會覺得奇怪,JavaScript、C 和瀏覽器之間到底有什麼關係?它們之間看似毫無關聯,但實際上,它們在現代網絡開發中扮演著非常重要的角色。今天我們就來深入探討一下這三者之間的緊密聯繫。通過這篇文章,你將了解到JavaScript如何在瀏覽器中運行,C 在瀏覽器引擎中的作用,以及它們如何共同推動網頁的渲染和交互。 JavaScript與瀏覽器的關係我們都知道,JavaScript是前端開發的核心語言,它直接在瀏覽器中運行,讓網頁變得生動有趣。你是否曾經想過,為什麼JavaScr

node.js流帶打字稿node.js流帶打字稿Apr 30, 2025 am 08:22 AM

Node.js擅長於高效I/O,這在很大程度上要歸功於流。 流媒體匯總處理數據,避免內存過載 - 大型文件,網絡任務和實時應用程序的理想。將流與打字稿的類型安全結合起來創建POWE

Python vs. JavaScript:性能和效率注意事項Python vs. JavaScript:性能和效率注意事項Apr 30, 2025 am 12:08 AM

Python和JavaScript在性能和效率方面的差異主要體現在:1)Python作為解釋型語言,運行速度較慢,但開發效率高,適合快速原型開發;2)JavaScript在瀏覽器中受限於單線程,但在Node.js中可利用多線程和異步I/O提升性能,兩者在實際項目中各有優勢。

JavaScript的起源:探索其實施語言JavaScript的起源:探索其實施語言Apr 29, 2025 am 12:51 AM

JavaScript起源於1995年,由布蘭登·艾克創造,實現語言為C語言。 1.C語言為JavaScript提供了高性能和系統級編程能力。 2.JavaScript的內存管理和性能優化依賴於C語言。 3.C語言的跨平台特性幫助JavaScript在不同操作系統上高效運行。

幕後:什麼語言能力JavaScript?幕後:什麼語言能力JavaScript?Apr 28, 2025 am 12:01 AM

JavaScript在瀏覽器和Node.js環境中運行,依賴JavaScript引擎解析和執行代碼。 1)解析階段生成抽象語法樹(AST);2)編譯階段將AST轉換為字節碼或機器碼;3)執行階段執行編譯後的代碼。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能