سؤال

لدي صفحة تتضمن JavaScript والتي أريد فقط تشغيلها في ظل ظروف معينة. للقيام بذلك ، وضعت البرامج النصية في ASP: عنصر نائب

يبدو أن هذا يعمل في الواقع ، لكن عندما أقوم بتشغيل تصحيح على الصفحة ، أحصل على التحذير التالي.

عنصر "العنصر النائب" ليس عنصرًا معروفًا. يمكن أن يحدث هذا إذا كان هناك خطأ في التجميع في موقع الويب ، أو أن ملف web.config مفقود.

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

Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)

dim lt as new Literal()
lt.text = "<script type='text/javascript' src='scripts/pageLoadAnimations.js'></scr" & "ipt>"
me.Header.Controls.Add(lt)

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

المحلول

يمكنك تضمين ملف JS مباشرة من الكود وراء:

If (some condition is true) Then
   Page.ClientScript.RegisterClientScriptInclude("jQuery", "jquery-version.js")
End If

نصائح أخرى

بطريقتين تناسب احتياجاتك هي:

أولا ، يمكنك تغيير الخاص بك <head> علامة إلى <head id="header" runat="server"> ثم يتيح لك هذا إضافة أي شيء إلى أي شيء ، على سبيل المثال

dim lt as new Literal()   
lt.text = "<script type='text/javascript' src='pathtojavascriptfile'></script>"  
me.Header.Controls.Add(lt)

أو يمكنك إنشاء سلسلة عامة على صفحتك ، ثم قم بتمسك JavaScript في هذا.

عام _js كسلسلة

page_load

_JS = "alert('here');" ' Or what ever your javascript is

صفحة ASPX

<head>
    <script type="text/javascript" src="jquery-version.js"></script>
    <script type="text/javascript">
       $().ready(function(){
          <%=(me._JS) %>
       });
    </script>
</head>

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

بما في ذلك البرنامج النصي العميل المخصص في صفحات ASP.NET
ClientScriptManager فئة

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