簡體   English   中英

除了 URL 之外,如何讓這個“共享”按鈕獲取當前 URL 的 HTML 標題?

[英]How do I get this “Share” button to grab the current URL's HTML title in addition to URL?

我是一名 JavaScript 新手,正在嘗試構建一個基本的共享按鈕作為學習項目。 我對某一方面感到有些困惑。 雖然我可以獲取當前頁面的 URL 並將其傳遞到預填充共享表單的 URL,但我不確定如何獲取 HTML 標題。

這是我必須做的:

<a href="http://www.example.com/submit" onclick="window.location = 'http://www.example.com/submit?url=' + encodeURIComponent(window.location); return false;"> Share This </a> 

我要在onclick部分添加什么來獲取當前頁面的標題? 無論它是什么,都會在 URL 中作為title=傳遞。

獎勵:我可以添加一些東西來發送當前頁面中的一些突出顯示的文本嗎? 這將在 URL 中作為body=

所以我想填補這些空白:

<a href="http://www.example.com/submit" onclick="window.location = 'http://www.example.com/submit?url=' + encodeURIComponent(window.location); return false; + 'title=' + SOMETHING + 'body=' + SOMETHING'"> Share This </a>

至少我是這么認為的。 我不是 100% 確定我有 + 和 ' 在正確的位置。

我想你想要document.title 獲取選定的文本有點復雜,尤其是如果您想支持 IE。 DOM 標准是window.getSelection但對於 IE,你必須處理范圍- 我沒有檢查 IE8 中的情況是否有所改善。

我也想問,分享按鈕在哪里? 如果它在頁面中,則單擊該按鈕將取消選擇已選擇的文本。

獲取選中文本的方式有多種,不同的瀏覽器實現的方式不同:

首先,有document.getSelection() ,它將所選文本作為字符串返回。 然后是window.getSelection() ,它將返回一個選擇對象。 要獲取原始文本,請使用其toString()方法。 IE 獲取文本的方式使用范圍,即document.selection.createRange().text

我建議使用包裝函數使document.getSelection()可用於支持上述任何方法的所有瀏覽器:

if(typeof document.getSelection === 'undefined') {
    document.getSelection =
        window.getSelection ? function() {
            return window.getSelection().toString();
        } :
        document.selection ? function() {
            return document.selection.createRange().text;
        } :
        null;
}

附帶說明:您應該設置location.href (而不是location )來更改文檔的地址。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM