سؤال

والنظر في التعليمة البرمجية التالية:

<a href="#label2">GoTo Label2</a>
... [content here] ...
<a name="label0"></a>More content
<a name="label1"></a>More content
<a name="label2"></a>More content
<a name="label3"></a>More content
<a name="label4"></a>More content

هل هناك طريقة لمحاكاة النقر على رابط "الانتقال إلى LABEL2" للانتقال إلى المنطقة المناسبة على الصفحة من خلال الرمز؟

تعديل : في والبديل المقبول أن يكون للانتقال إلى عنصر مع فريدة من نوعها معرف، والتي وجدت بالفعل على صفحتي. وأود أن تكون إضافة العلامات مرساة إذا كان هذا هو الحل الناجع.

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

المحلول

وهذا JS عملت بشكل جيد عموما بالنسبة لي إذا كنت أيضا وضع ID على العنصر:

document.getElementById('MyID').scrollIntoView(true);

وهذا أمر جيد لأنها سوف تضع أيضا عناصر div تمرير الخ بحيث محتوى مرئيا.

نصائح أخرى

<ع> استخدام جافا سكريبت:

window.location.href = '#label2';

إذا ما عليك القيام به من الخادم / القانون وراء، يمكنك تنبعث منها فقط هذا جافا سكريبت وتسجيله كبرنامج نصي بدء التشغيل لهذه الصفحة.

ونقل إلى مرساة من جانب الملقم، مثال على ذلك هو ج #.

ClientScript.RegisterStartupScript(this.GetType(), "hash", "location.hash = '#form';", true);

وأعتقد أن هذا العمل:

window.location="<yourCurrentUri>#label2";

والحل

document.getElementById('MyID').scrollIntoView(true);

ويعمل بشكل جيد في جميع المتصفحات تقريبا، في حين لقد لاحظت أنه في بعض المتصفحات أو في بعض المتنقلة (مثل بعض إصدارات بلاك بيري) لم يتم التعرف "scrollIntoView" وظيفة، لذلك أود أن النظر في هذا الحل (أقبح قليلا من واحد السابق):

window.location.href = window.location.protocol + "//" + window.location.host + 
                       window.location.pathname + window.location.search + 
                       "#MyAnchor";

إذا كان العنصر علامة مرساة، يجب أن تكون قادرة على القيام به:

document.getElementsByName('label2')[0].focus();

ولا "#" عند استخدام window.location.hash

ويمكنك فقط فتح URL جديد مع اسم إلحاق، على سبيل المثال http://www.example.com/mypage.htm#label2

في جافا سكريبت،

location.href = location.href + '#label2';
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top