كيفية العثور على قصاصة من جافا سكريبت بتعديل عنصر؟

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

سؤال

وصفحة أحاول تفتيش لديها عنصر <input type="hidden" name="Foo" value="123 /> مخفي على الصفحة، حيث يعدل جافا سكريبت / أجاكس القيمة. أنا أحاول أن يجد فيها على وجه الأرض في جافا سكريبت هو رمز بتعديل هذه القيمة من وقت لآخر.

هل هناك أداة يمكن مساعدتي في العثور على أماكن في جافا سكريبت التي تستخدم / تعديل هذا العنصر؟ هل تقدم الحرائق هذا، إذا كان الأمر كذلك، كيف؟

ملحوظة: إذا حاولت تبحث عن "فو" في رمز، ولكن لم أجد أي عناوين مطابقة. هناك JSON وموتولز تحميل، + تطبيق رمز معين، والذي ينتج عدة آلاف الأسطر من التعليمات البرمجية. وربما الوصول إلى عنصر غير مباشر.

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

المحلول

وكيف يمكنك أن تعرف أن جافا سكريبت يتم تعديل هذه القيمة؟ منذ يبدو أنك تعرف بالفعل عندما يطلق عليه (منذ كنت أعلم أنه يتغير)، أود أن أقترح نقطة توقف في الحرائق في الحدث الأول الذي يبدأ التغيير (ربما سمة عند _ النقر في عنصر آخر).

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

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

وأنا عادة مجرد محاولة لفهم منطق جافا سكريبت من كل النصي يمكنني استخدامها مع تقنيات التصحيح الحرائق - ولكن فقط على نصي يستخدم مكتبات

.

نصائح أخرى

والحرائق 1.5 سيكون "كسر على اساس تعديل" على لوحة HTML. انظر http://getfirebug.com/doc/breakpoints/demo.html#html - استراحة على DOM (HTML) الطفرة الأحداث

إذا لم الحرائق تمكنك من تحديد نقاط التوقف على وضع بعض القيمة، هل يمكن ادخال شيء من هذا القبيل في الصفحة (فايرفوكس فقط):

$("textarea")[0].__defineSetter__("value", function(val) {
   alert("called");
})

وإما توقف على وظيفة في الحرائق أو استخدام console.log أو أيا كان لتفريغ كومة إلى وحدة الحرائق.

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


[عدل] ما سبق هو لحالة تم تعيين القيمة عن طريق تعيين إلى الخاصية القيمة: .value = .... إذا كنت بحاجة لالتقاط لحظة و<م> السمة تغيير (.setAttribute("value", ...))، يمكنك استخدام DOM المستمعين الطفرة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top