asp.net العنصر النائب في رأس الصفحة
-
28-09-2019 - |
سؤال
لدي صفحة تتضمن 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 فئة