كيف أعرف إذا تم جافا سكريبت إيقاف داخل المتصفح ؟

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

  •  09-06-2019
  •  | 
  •  

سؤال

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

أبحث عن التفاف if/ثم بيان حول ذلك.

أنا في كثير من الأحيان رمز في CFML ، إذا كان ذلك يساعد.

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

المحلول 4

نحن نتحدث عن شيء مثل هذا:

جافا سكريبت:

<body>
...
...
<script type="text/javascript">
<!--
document.write("Hello World!")
//-->
</script>
<noscript>Your browser does not support JavaScript!</noscript>
...
...
</body>

نصائح أخرى

هذا هو مجموع هاك ولكن هل يمكن استخدام iframe داخل noscript الوسم لتحريك HTTP الحصول على عنوان url أخبر الخادم أن المستخدم لا يجب تمكين جافا سكريبت.

<body>
...
...
<noscript>
    <iframe src ="/nojs.aspx?SOMEIDENTIFIER=XXXX&NOJS=TRUE" style="display: none;">
    </iframe>
</noscript>
...
...
</body>

استخدام <noscript> علامات HTML.

لست متأكدا ما كنت تحاول القيام به ولكن إذا كنت تحتاج فقط إلى إعلام المستخدم أن جافا سكريبت المطلوبة يمكنك فقط استخدام '<noscript>' الوسم.إذا كنت بحاجة إلى أن تعرف على الخادم يمكن أن تجعل Ajax نمط الطلب إلى الخادم من جافا سكريبت.إذا كنت تحصل على طلب جافا سكريبت هو العمل وإلا لا.

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

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

إذا كانت قد حصلت تمكين جافا سكريبت ثم أنها سوف تحصل على التأثير الكامل, ولكن إذا لم يكن ثم المستخدمين سوف تكون لا تزال قادرة على استخدام موقع الويب الخاص بك.و فضلا عن كونه أفضل من أجل الوصول قد تجد هذا النهج يعزز كبار المسئولين الاقتصاديين الخاص بك.

<noscript>
    ...some non-js code
</noscript>

نعم هذا NoScript مقتطف هو الحق.

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

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

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

إلى جانب HTML noscript الوسم ، ليس هناك الكثير يمكنك القيام به ، بقدر ما أعرف ، إلى جانب كتابة سكريبت تدريجيا (انظر التحسين التدريجي) حتى أن كنت لا تحتاج إلى التحقق من جافا سكريبت:قبالة.

أنا لا أعرف JS, ولكن سيكون من الممكن تعديل الروابط داخل الصفحة مع شبيبة ؟ إذا كان شخص يذهب إلى معدلة الرابط, انهم لا يستخدمون JS, ولكن إذا فعلوا ذلك ثم أنها تستخدم JS.هل هذا منطقي ؟

لم يعمل بها كيف تفعل ذلك دون ذهابا وإيابا ، لذلك يعتمد على ما هو هدفك.

إذا يجب أن يكون جافا سكريبت إلى المضي قدما ، ثم لدي (في .صافي) فعل أشياء مثل تعطيل زر "تسجيل الدخول" في جانب الملقم, ثم مكنها من جانب العميل مع جافا سكريبت ، واستخدم noscript الوسم تظهر رسالة خطأ.

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

يمكن أن تكتب

<script type="text/javascript" language="javascript">document.write("<input type='hidden' name='hasJs' value='1' />");

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

إذا كنت تبحث عن وسيلة للتحقق من ذلك من جانب الملقم, أنت يمكن أن ترسل للمستخدم js أن يضع الكوكي....إذا كان ملف تعريف الارتباط الموجودة على طلب ثم يمكنك معرفة ما إذا كان كتابتها يعمل أو لا!

واحد طريقة للقيام بذلك هي باستخدام جافا سكريبت دولار.بعد إرسال مذكرة إلى الخادم الخاص بك.(أعتذر إذا كان هناك أي أخطاء في هذا شطبها قمة رأسي سيتم تحديث في وقت لاحق عندما أجلس اختبار).يجب أن تسمح لك لبناء ذلك يمكنك حتى سحب من الدورة البيانات إذا كنت تستخدم جافا سكريبت, والتي سوف تسمح لك أن تقدم بدائل جافا سكريبت دون الحاجة إلى اللجوء إلى .

الخاص بك على صفحة البرنامج النصي:

<script>
function myJavascriptTest(){
    $.post ()('myJavascriptTest.php', {myJavascriptOn: true}, function(){
    return true;
}
myJavascriptTest()
</script>

وفي المستهدفة .php...

<?php

if ($_POST['myJavascriptOn'] == true){
    $_SESSION['javascriptIsOn'] = true;
} else {
    $_SESSION['javascriptIsOn'] = false;
}
?>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top