كيف يمكنني الحصول على هذا "مشاركة" زر لانتزاع لقب HTML URL الحالي بالإضافة إلى URL؟

StackOverflow https://stackoverflow.com/questions/1044091

سؤال

وأنا مبتدئ جافا سكريبت تحاول صنع زر السهم الأساسي كمشروع التعلم. أنا قليلا الحيرة حول جانب واحد. في حين أستطيع انتزاع URL للصفحة الحالية وتمرير ذلك في عنوان الموقع الذي prepopulates شكل سهم، وأنا لست متأكدا من كيفية انتزاع لقب أتش تي أم أل.

وإليك ما لا بد لي من ذلك بكثير:

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

وماذا يمكنني إضافة إلى القسم عند _ النقر للحصول على عنوان الصفحة الحالية أيضا؟ كل ما سيتم إقراره بأنه "عنوان =" في 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>

وعلى الأقل أعتقد ذلك. لست متأكدا 100٪ أنا عندي + الصورة و "الصورة في المكان المناسب.

هل كانت مفيدة؟

المحلول

وأعتقد أنك تريد document.title . الحصول على النص المحدد هو قليلا أكثر تعقيدا، وخاصة إذا كنت ترغب في دعم IE. DOM المعيار هو window.getSelection ولكن لIE لديك للتسكع مع < وأ href = "http://msdn.microsoft.com/en-us/library/ms533041٪28VS.85٪29.aspx" يختلط = "نوفولو noreferrer"> تتراوح - لقد غير محددة اذا كانت الامور قد تحسنت في 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 مع الإسناد
لا تنتمي إلى StackOverflow
scroll top