PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : بررسي فعال يا غيرفعال بودن جاواسكريپت



shirin71
08-07-2011, 07:21 AM
دستوراتي كه در تگ <script> نوشته ميشند در صورت فعال بودن جاواسكريپت در مرور گر نمايش داده ميشه و دستورات داخل تگ <noscript> در صورت غيرفعال بودن جاوااسكريپت در مرور گر كاربر اجرا ميشند.

نمونه اي از چندمثال:



<script type="text/javascript">
document.write('Only users with JavaScript will see me.');
</script>
<noscript>
Only users without JavaScript will see me.
</noscript>



---------



<div id="javaScriptOnly" style="display:none">
Only users with JavaScript will see me.
<asp:LinkButton runat="server" ... />
</div>
<div id="noJavaScript" style="display:block">
Only users without JavaScript will see me.
<asp:Button runat="server" ... />
</div>
<script type="text/javascript">
document.getElementById('javaScriptOnly').style.di splay = 'block';
document.getElementById('noJavaScript').style.disp lay = 'none';
</script>



البته كنترلي داريم به نام

<inedo:ScriptOnly runat="server">
كه در صورتي كه جاواسكريپت فعال باشه اجرا ميشه.
مثال بالا با استفاده از اين كنترل:

<inedo:ScriptOnly runat="server">
Only users with JavaScript will see me.
<asp:LinkButton runat="server" onClick="doSomething" ... />
</inedo:ScriptOnly>
<noscript>
Only users without JavaScript will see me.
<asp:Button runat="server" onClick="doSomething" ... />
</noscript>

سورس كد كنترلScriptOnly بصورت زيره:



[ParseChildren(false)]
public class ScriptOnly : Control
{
protected override void Render(HtmlTextWriter writer)
{
//Render contents to a StringWriter
StringWriter renderedContents = new StringWriter();
base.Render(new HtmlTextWriter(renderedContents));

//write out the contents, line by line
writer.WriteLine("<script type=\"text/javascript\">");
StringReader sr = new StringReader(renderedContents.ToString());
while (sr.Peek() >= 0)
{
// This could be optimized to write on one line; but
// I've found this makes it easier to debug when
// looking at a page's source
writer.WriteLine(
"document.writeln('{0}');",
jsEscapeText(sr.ReadLine()).Trim());
}
writer.WriteLine("</script>");
}

private string jsEscapeText(string value)
{
if (string.IsNullOrEmpty(value)) return value;

// This, too, could be optimzied to replace character
// by character; but this gives you an idea of
// what to escape out
return value
/* \ --> \\ */
.Replace("\\", "\\\\")
/* ' --> \' */
.Replace("'", "\\'")
/* " --> \" */
.Replace("\"", "\\\"")
/* (newline) --> \n */
.Replace("\n", "\\n")
/* (creturn) --> \r */
.Replace("\r", "\\r")
/* </script> string */
.Replace("</script>", "</scri'+'pt>");
}
}