سؤال

لدي القليل من رمز JavaScript الذي يخلق نسخة "حفظ ودية" من صفحة ويب.

child = window.open("","child");
child.document.write(htmlPage);

"HTMLPAGE" هو HTML الأساسي للصفحة مع إخراج جميع مراجع JavaScript، مجموعة مختلفة من صور الرأس المراجع، إلخ.

كل شيء يعرض تماما في نافذة منبثقة، مع عدم تشغيل JavaScript. عندما أضغط على "File-> حفظ باسم"، فإن الملف المحفوظ هو النافذة الأصلية، إلى جانب جميع جافا سكريبت، ومع عدم وجود أي أثر من نافذة الطفل. لا أحد يعرف كيفية حل هذه المشكلة؟ أريد أن أحفظ فقط نافذة الطفل فقط.

شكرا، -Kraryal.

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

المحلول

عند حفظ الصفحة، ستحفظ محتوى URL الأصلي (على سبيل المثال تماما كما لو قمت بتنزيل نسخة جديدة)

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

نصائح أخرى

كان لدي موقف مماثل (ولكن لم يكن على استعداد للتخلي عن تماما). أقوم بإنشاء نسخة ودية من وحفظها من صفحة ويب باستخدام JavaScript التي أريد تنزيل المستخدم كملف نصي (قيم مفصولة بفواصل، في حالتي). أظن data: URIS يمكن أن تساعد هنا.

//construct the csvOutput in Javascript first
var popup = window.open("data:application/octet-stream," + encodeURIComponent(csvOutput), "child");
//no need to document.write() anything in the child window

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

بدلا من ذلك، يمكننا استخدام النص / عادي نوع MIME:

//construct the csvOutput in Javascript first
var popup = window.open("data:text/plain;charset=utf-8," + encodeURIComponent(csvOutput), "child");

في فايرفوكس، هذا يقوم بتفتح POP نافذة جديدة، ولكن بعد ذلك يتم حفظه افتراضيا باسم نص ASCII، دون أي من Cruft من النافذة الأصلية أو أي غلاف خط. ربما هذا هو ما سوف أستخدمه.

يبدو أن هذا لن يعمل في IE على الرغم من. IE 8 هو الإصدار الوحيد الذي يدعم data: أوريس، ولديها سلسلة من القيود على حيث يمكن استخدامه. ل IE، قد تنظر في execcommand..

بفضل هذا TEK-TIP الموضوع و ال مقال ويكيبيديا على مخطط البيانات URI.

للحصول على Windows / IE فقط الإصدار انظر هنا: http://p2p.wrox.com/javascript-how/3193-how-do-you-save-html-page-your-local-hd.html.

أعرف، رهيبا، ولكن فقط في حالة وجود مثل إنترانت IE فقط ....

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

يتم نشر هذه الجافا سكريبت لكل من Internet Explorer و Safari. لا يستمتع تطبيق الاستضافة دائما بالوصول إلى نظام الملفات المحلية.

يمكن للمستخدمين تحديد الصفحة التي تعمل بها، ثم احفظها في الطباعة أو البريد الإلكتروني لاحقا. نقول لهم أن نقوم بحفظها كأرشيف ملف واحد بحيث يمكن أن يكون بالفعل البريد. يمكن لحضيل الحفظ القيام بذلك، ويمكن للمستخدم وضع الملف في مكان ما لديهم إمكانية الوصول إليه، ولهذا السبب استخدمناه.

يبدو أن الطريقة البسيطة ستكون كتابة HTML الجديد من جافا سكريبت إلى الدليل المحلي، ولكن لا يمكننا دائما القيام بذلك. أي أفكار أخرى؟ شكرا للمساعدة حتى الآن.

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