مسج.لن يتم تحميل ملفات تعريف الارتباط ديناميكيا (مع مسج جيتسكريبت الخ)

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

سؤال

أحاول إنشاء طريقة حذف جلسة لملفات تعريف الارتباط عند تسجيل الخروج.

يجب حذف ملفات تعريف الارتباط التي تحتوي على مفتاح بدء معين ، لذلك قمت بعمل القليل من جافا سكريبت الذي يعمل.

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

في رمز بلدي وراء ، وأنا أفعل ما يلي:

    Dim logoutJS As String = ""
    logoutJS += "function loadJQuery(callback) {  "
    logoutJS += "var addJquery = document.createElement('script'); " '// add jQuery to document
    logoutJS += "addJquery.onload = callback;  "
    logoutJS += "addJquery.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'; "
    logoutJS += "document.getElementsByTagName('head')[0].appendChild(addJquery); "
    logoutJS += "  }; "
    logoutJS += "function loadCookies() { " '// now jQuery is loaded we can used getScript
    logoutJS += "$.getScript('/Scripts/jquery_cookies_min.js', deleteCookies()); "
    logoutJS += "  };"
    logoutJS += "function deleteCookies() { "  
    logoutJS += "var cookieSettings = $.cookies.filter(/^hgAdmin/); "
    logoutJS += "$.each(cookieSettings, function (cookieName, content) { "
    logoutJS += "$.cookies.del(cookieName); });        "
    logoutJS += "window.location = ('/login.aspx'); };"
    logoutJS += "loadJQuery(function() { loadCookies(); }); "

    Common.logOut(Session)
    ScriptManager.RegisterStartupScript(form1, GetType(HtmlGenericControl), "form1", logoutJS, True)

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

عند إدراجها يدويا في الصفحة وترميز جسديا ملفات جس المدرجة ، وهذا يعمل بشكل جيد.

ومع ذلك ، عند إدراجها ديناميكيا ، فإن $.getScript('/Scripts/jquery_cookies_min.js', deleteCookies()); لا يعمل بشكل صحيح.

المشكلة هي أن jquery_cookies_min.js لا يتم تحميل الملف عند تشغيل رد الاتصال deleteCookies أطلقت حتى أحصل على خطأ وحدة التحكم cannot call method 'filter' of undefined.

إذا قمت بتغيير البرنامج النصي تحميلها من قبل getScript إلى برنامج نصي مختلف ، نسخة أخرى من مسج على سبيل المثال ، ثم يقوم بتحميل (أستطيع أن أرى كروم Network وحدة التحكم يظهر مسج لاود مرتين) ، لكنه لن تحميل هذا الملف الكوكيز.

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

لماذا لا يتم تحميل هذا البرنامج النصي?!

تحرير:لقد حاولت أيضا مع طريقة عنصر أدفينتشيلد وفقا للطريقة التي أنا تحميل مسج...نفس النتيجة

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

المحلول

لأن المعلمة الثانية الخاصة بك هي وظيفة اتصل, ، وليس تعريف وظيفة أو مرجع.

حاول إزالة () من ديليتكوكيس () أو استخدام:

$.getScript('/path', function () { deleteCookies() });
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top