إنقاذ أتش تي أم أل الخام صفحة إنشاؤه بشكل حيوي

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

سؤال

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

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

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

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

المحلول

ويمكنك استخدام هذا للحصول على معظم HTML للصفحة:

var htmlSource = document.getElementsByTagName('html')[0].innerHTML;

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

وسوف أفترض يمكنك فقط استخدام نفس AJAX كنت تستخدم بالفعل لإرسال <م> htmlSource إلى الخادم بمجرد أن أمسك به.

نصائح أخرى

ويمكنك بالتأكيد إعادة innerHTML من مسج أي الكائنات التي يمكنك تحديد، على الرغم من أنه لا يبدو أن أفضل طريقة للذهاب (انظر إجابات أخرى عن بدائل).

واحترس من هجمات XSS . إذا كنت مجرد تشغيل HTML ذهابا وإيابا دون التحقق أولا كنت تاركا نفسك مفتوحة للمخاطر الكبرى.

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

لإجابة على سؤالك، أود أن استخدام الناتج التخزين المؤقت ل القبض على إخراج البرامج النصية، ومن ثم استخدام واحد من العديد من الأدوات المتاحة لتحويل HTML إلى PDF.

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