1

私はJavaScriptの初心者で、学習プロジェクトとして基本的な共有ボタンを作成しようとしています。私は1つの側面について少し困惑しています。現在のページの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%わかりません。

4

2 に答える 2

2

document.titleが必要だと思います。特にIEをサポートしたい場合は、選択したテキストの取得は少し複雑です。DOMの標準はwindow.getSelectionですが、IEの場合は範囲​​をいじる必要があります-IE8で状況が改善されたかどうかは確認していません。

また、共有ボタンはどこにありますか?ページ内にある場合は、ボタンをクリックすると、選択されているテキストの選択が解除されます。

于 2009-06-25T14:08:16.013 に答える
0

選択したテキストを取得するにはいくつかの方法があり、ブラウザが異なれば実装も異なります。

まず、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

于 2009-06-25T14:24:25.840 に答える