كيف يمكن للمرء أن يكتشف عبر JavaScript إذا كانت ورقة أنماط الطباعة سارية؟

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

  •  19-08-2019
  •  | 
  •  

سؤال

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

إذا تم طباعة هذه الصفحة ، فلا تهتم بالاتصال بـ SWFObject لاستدعاء .SWF إلى الوجود. فقط اترك HTML الذي سيحل محله الفلاش.

لقد جربت أشياء مثل تعيين عنصر معروف على نمط معروف موجود على الشاشة ولكن ليس لورقة أنماط الطباعة. لكن الحصول على "نمط" عبر JavaScript لا يحصل على ملف محسوب نمط.

ملخص: بطريقة متصفحة ، هل من الممكن معرفة أي ورقة أنماط سارية؟

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

المحلول

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

ما تريد القيام به هو وضع swfobject الخاص بك داخل حاوية div ، واحصل على الحاوية على غرار display:none; للوسائط المطبوعة.

نصائح أخرى

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

ال getActiveStyleSheet الوظيفة تبدو مثل هذا:

function getActiveStyleSheet() 
{
    var i, a;

    for (i = 0; (a = document.getElementsByTagName("link")[i]); i++) 
    {
        if (a.getAttribute("rel").indexOf("style") != -1
         && a.getAttribute("title")
         && !a.disabled) 
            return a.getAttribute("title");
    }

    return null;
}

يمكنك العثور على الرمز هنا: http://www.alistapart.com/articles/alternate/.

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