どのように私はURLに加えて、現在のURLのHTMLタイトルをつかむために、この「共有」ボタンを得るのですか?
-
20-08-2019 - |
質問
私は、学習プロジェクトなどの基本的な共有ボタンを構築しようとしているJavaScriptの初心者です。私は一つの側面について少し困惑します。私は、現在のページのURLを取得し、共有フォームを事前入力URLの中にそれを渡すことができますが、私は、HTMLのタイトルをつかむするかどうかはわかりません。
ここで私は遠くに持っているものです。
<a href="http://www.domain.com/submit" onclick="window.location = 'http://www.domain.com/submit?url=' + encodeURIComponent(window.location); return false;"> Share This </a>
私は何としても、現在のページのタイトルを取得するために、onclickのセクションに追加するには?どのようなそれは、URLに「=タイトル」として渡されますされます。
ボーナス:私は、現在のページからいくつかの強調表示されたテキストに沿って送信するために追加できるものはありますか?それは、「身体=」
のようにURLに行くだろうだから私はこれらの空白を埋めるために探しています:
<a href="http://www.domain.com/submit" onclick="window.location = 'http://www.domain.com/submit?url=' + encodeURIComponent(window.location); return false; + 'title=' + SOMETHING + 'body=' + SOMETHING'"> Share This </a>
少なくとも私はそう思います。私は私が正しい場所に+ 'sおよび' sのを持って100%わからない。
解決
私はあなたが document.title にしたいと思います。選択したテキストを取得すると、あなたはIEをサポートしたい場合は特に、少し複雑です。 DOM標準は window.getSelection のですが、IEのために、あなたは<と周りの混乱に持っていますhref = "http://msdn.microsoft.com/en-us/library/ms533041%28VS.85%29.aspx" のrel = "nofollowをnoreferrer"> の範囲 - ものならば私がチェックしていませんでしたIE8に改善している。
また、私はお願いするもので、どこのシェアボタンがでしょうか?それは、ボタンをクリックするとページになら選択されたテキストの選択を解除しようとします。
他のヒント
があり、選択したテキストを取得するには、いくつかの方法があり、異なるブラウザは異なるものを実装します:
まず、文字列として選択したテキストを返しますdocument.getSelection()
が、あります。次に、選択オブジェクトを返しますwindow.getSelection()
は、あります。生のテキストを取得するには、そのtoString()
メソッドを使用します。テキストを取得するIEの方法は、document.selection.createRange().text
つまり、範囲を使用します。
私は、上記のいずれかの方法をサポートするすべてのブラウザのためにlocation.href
利用できるようにするラッパー関数の使用をお勧めます:
if(typeof document.getSelection === 'undefined') {
document.getSelection =
window.getSelection ? function() {
return window.getSelection().toString();
} :
document.selection ? function() {
return document.selection.createRange().text;
} :
null;
}
側の注意点としては:あなたは、ドキュメントのアドレスを変更する(location
としない)<=>設定する必要があります。