>您在那裡很樂意瀏覽一個網站;您單擊一個鏈接,突然發現自己在另一個網站上下載文件。那裡發生了什麼?煩人,不是嗎?必須有一種更好的方法向您的訪問者指示鏈接要去的地方以及哪種類型的文件。因此,為了幫助解決這個小小的煩惱,我寫了一些JavaScript和CSS,這些JavaScript和CSS在鏈接之後添加了很小的圖標(取決於文件擴展名和位置),以向用戶指示他們將要加載的文檔的類型。
>
鑰匙要點
>簡單性 - 必須易於使用
>在開始之前,我想承認Mark James在Famfamfam上的優秀和免費的絲綢圖標,我們將在本文中使用。
>
>此外,值得信用的信用:本文的靈感來自亞歷山大·凱撒(Alexander Kaiser)與CSS的Iconize TextLinks的啟發,這反過來又受到了CSS Guy與CSS展示超鏈接提示的啟發。此外,我使用了Sitepoint自己的詹姆斯·愛德華茲(James Edwards)撰寫的幾個出色的功能,還有一些從凱文·揚克(Kevin Yank)和卡梅倫·亞當斯(Cameron Adams)撰寫的核心JavaScript庫中,並在SitePoint Book中不朽,只需JavaScript。
那麼如何工作?為使其全部起作用,涉及三個文件:
>
讓自己感到舒適,我們將深入研究內部的工作。
配置
在文件頂部,您會看到所有配置變量: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_”,我們先前配置了,但是在這些數組中,我們
>外部鏈接
>要確定鏈接是否是外部站點,我們需要知道當前頁面的主機名。為此,我們使用:
>這是當前文檔的位置,並使用合格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.
我們通過再次使用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;
限制
結論
創建超鏈接,使用JavaScript創建超鏈接涉及操縱文檔對像模型(DOM)。您可以創建一個新的錨點元素,設置其HREF屬性,然後將其附加到文檔正文上。這是一個簡單的示例:
var link = document.createelement('a'');
link.href =“ https://www.example.com”;
link.textContent =“ go xplox example.com”;我們要鏈接到的頁面的URL。然後,我們設置鏈接的文本,最後將鏈接附加到文檔正文。
>
>如何使用JavaScript?
link.href =“ https://www.example.com”;
鏈接>屬性設置為“ _blank”,這意味著該鏈接將在新窗口或選項卡中打開。
>我如何使用JavaScript?
>使用“標題”屬性添加超鏈接標題。此屬性提供了有關鏈接的其他信息,例如鍊接文檔的名稱,並且當鼠標在鏈接上移動時通常以工具提示表示。以下是一個示例:
var link = document.createelement('a'');
>如何使用JavaScript?
如何使用“ removeChild”方法刪除超鏈接。此方法刪除了指定元素的指定子節點。這是一個示例:
var link = document.getElementById('myLink');
link.parentnode.removechild(link);
在此代碼中,我們首先通過其ID獲取鏈接元素,然後從其父節點中刪除它。
更改超鏈接的文本?此屬性設置或返回指定節點的文本內容及其所有後代。以下是一個示例:
var link = document.getElementById('myLink');
link.textContent =“新鏈接text”;
在此代碼中,我們首先通過其ID獲取鏈接,然後將其文本內容更改為“新鏈接”。 “樣式”屬性。此屬性用於從元素添加,更改或刪除內聯樣式。這是一個示例:
link.style.style.fontsize =“ 20px”;
>使用“ AddeventListener”方法將事件偵聽器添加到超鏈接中。此方法將事件處理程序附加到指定元素。以下是一個示例:
var link = document.getElementById('myLink');
}); 在此代碼中,我們首先通過link exter a單擊“”事件,然後將事件連接到一個事件,然後將其附加到事件。當單擊鏈接時,將顯示一個警報框。
>
>如何防止超鏈接使用JavaScript使用JavaScript?
var link = document.getElementById('myLink');
link.addeventListener('click'click',function(event){
>
>
下載可以使用“下載”屬性創建文件的超鏈接。此屬性指定當用戶單擊超鏈接時,將下載目標。以下是一個示例:
var link = document.createelement('a'');
在此代碼中,我們首先創建一個新的錨點元素,然後將其HREF屬性設置為我們要下載的文件的URL。然後,我們將下載屬性設置為文件的名稱,最後將鏈接附加到文檔正文中。
>可以使用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中文網其他相關文章!