PDA

View Full Version : چگونه می توان تشخیص داد که جاوا اسکریپت کاربر غیر فعال است



bitcob589
شنبه 21 بهمن 1391, 18:27 عصر
با سلام
چگونه می توان با برنامه نویسی ASp.net تشخیص داد که جاوا اسکریپت کاربر غیر فعال است.

ahmad156
شنبه 21 بهمن 1391, 18:55 عصر
دوست عزیز شما میتونین یه hiddenfield رو مقدار اولیه 1 بدین و یه تابع js بنویسن که توی Load صفحه مقدار رو 0 کنه.پس اگر غیر فعال بود مقدار 1 میمونه چون تابع نمیتونه اجرا بشه

<script type="text/javascript">
$(document).ready(function () {
$("#isDisable").val("0");
});

</script>

و

<form id="form1" runat="server">
<asp:HiddenField ID="isDisable" ClientIDMode="Static" runat="server" Value="1" />
<div>

</div>
</form>

bitcob589
شنبه 21 بهمن 1391, 19:12 عصر
در نظر دارم اگر جاوا اسکریپت کاربر فعال بود متد خاصی اجرا شود و اگر جاوا اسکریپت غیر فعال بود متدی دیگری اجرا شود چگونه می توان چنین کاری انجام داد

ahmad156
شنبه 21 بهمن 1391, 19:21 عصر
دوست عزیز script بالا رو بنویسین و توی code behind به صورت زیر عمل کنین

if(isDisable.Value=="0")
متدی که در صورت فعال بودن باید اجرا بشه
else
متدی که در صورت غیر فعال بودن باید اجرا بشه

bitcob589
شنبه 21 بهمن 1391, 23:24 عصر
دستورات پستهای قبل نوشته ولی غیر فعال بودن جاوا اسکریپت تشخیص داده نمی شود

bitcob589
یک شنبه 22 بهمن 1391, 09:54 صبح
به چه دلیل غیر فعال جاوا اسکریپت تشخیص داده نمی شود

bitcob589
یک شنبه 22 بهمن 1391, 17:28 عصر
آیا روش دیگری وجود دارد که تشخیص داده شود که جاوا اسکریپت کاربر غیر فعال است

لطفا راهنمایی بفرمایید:گریه::گریه::گریه::گ یه::گریه::ناراحت:

website.expert
یک شنبه 22 بهمن 1391, 18:36 عصر
سلام،
اینها رو تست کنید:

1:
<asp:Label id="msg" runat="server" />
public void Page_Load(object sender,EventArgs e)
{
if(!Request.Browser.JavaScript)
{
msg.Text="You must enable the Javascript";
}

2:
<div id="jsEnabled" style="visibility:hidden">
JavaScript is enabled
</div>

<div id="jsDisabled">
JavaScript is disabled
</div>
<script language="javascript" type="text/javascript">

function checkJavaScriptValidity()
{
document.getElementById("jsEnabled").style.visibility = 'visible';
document.getElementById("jsDisabled").style.visibility = 'hidden';
}

</script>


3:

<html>
<head>
<style type="text/css">
.pagecontainer {
display:none;
}
</style>
<script>
function load() {
document.getElementById('noscriptmsg').style.displ ay = "none";
document.getElementById('load').style.display = "block";
/* rest of js*/
}
</script>
</head>
<body onload="load();">

<div class="pagecontainer" id="load">
Page loading....
</div>
<div id="noscriptmsg">
You don't have javascript enabled. Good luck with that.
</div>

</body>
</html>

bitcob589
دوشنبه 23 بهمن 1391, 09:48 صبح
چگونه می توان به وسیله کد زیر که در پست قبل نوشته شده است اگر جاوا اسکریپت کاربر فعال بود متد خاصی اجرا شود و اگر جاوا اسکریپت غیر فعال بود متدی دیگری اجرا شود


<html><head> <style type="text/css"> .pagecontainer { display:none; } </style> <script> function load() { document.getElementById('noscriptmsg').style.displ ay = "none"; document.getElementById('load').style.display = "block"; /* rest of js*/ } </script></head><body onload="load();"> <div class="pagecontainer" id="load"> Page loading.... </div> <div id="noscriptmsg"> You don't have javascript enabled. Good luck with that. </div></body></html>

ahmad156
دوشنبه 23 بهمن 1391, 09:52 صبح
دوست عزیز اگر javascript فعال نباشه تابعی نمیتونه اجرا بشه.روشی (نه صرفا کدی که نوشته شده) که در پست 2 مطرح شده به نظرم بهترین روش هست. مشکل از کدهاتون هست

bitcob589
دوشنبه 23 بهمن 1391, 09:59 صبح
دوست عزیز اگر javascript فعال نباشه تابعی نمیتونه اجرا بشه.روشی (نه صرفا کدی که نوشته شده) که در پست 2 مطرح شده به نظرم بهترین روش هست. مشکل از کدهاتون هست
کدی که در پست 2 گذاشته شد امتحان شد ولی غیر فعال بودن جاوا اسکریپت تشخیص داده نشد
اگر امکان دارد یک سمپل بگذارید:تشویق:

ahmad156
دوشنبه 23 بهمن 1391, 10:06 صبح
دوست عزیز من کد بالا رو تست نکردم:لبخند:.شاید کد بالا مشکل داشته باشه(که فکر نمیکنم) ولی از روش مطرح شده چون یه مسئله بدیهی هست مطمئنم.

bitcob589
دوشنبه 23 بهمن 1391, 10:11 صبح
اگر امکان دارد تست کنید و سمپل تست شده را بگذارید:متفکر:

bitcob589
دوشنبه 23 بهمن 1391, 11:30 صبح
دوست عزیز من کد بالا رو تست نکردم:لبخند:.شاید کد بالا مشکل داشته باشه(که فکر نمیکنم) ولی از روش مطرح شده چون یه مسئله بدیهی هست مطمئنم.
کد پست 2 دوباره تست شد ولی غیر فعال بودن جاوا اسکریپت تشخیص داده نشد

bitcob589
دوشنبه 23 بهمن 1391, 15:17 عصر
آیا کد زیر که در پست 8 نوشته شده است به چه صورتی می توان جاوا اسکریپت کاربر فعال بود متد خاصی اجرا شود و اگر جاوا اسکریپت غیر فعال بود متدی دیگری اجرا شود


<html><head> <style type="text/css"> .pagecontainer { display:none; } </style> <script> function load() { document.getElementById('noscriptmsg').style.displ ay = "none"; document.getElementById('load').style.display = "block"; /* rest of js*/ } </script></head><body onload="load();"> <div class="pagecontainer" id="load"> Page loading.... </div> <div id="noscriptmsg"> You don't have javascript enabled. Good luck with that. </div></body></html>

bitcob589
سه شنبه 24 بهمن 1391, 17:25 عصر
آیا روش دیگری وجود دارد که تشخیص داده شود جاوا اسکریپت غیر فعال است اگر فعال بود متد خاصی اجرا شود و اگر غیر فعال بود متد دیگری اجرا شود
لطفا راهنمای بفرمایید:ناراحت::ناراحت:

tvahid
سه شنبه 24 بهمن 1391, 17:58 عصر
اگه جاوا اسکریپت فعال نباشه پس هیچ کد جاوااسکریپتی اجرا نخواهد شد.
برای تشخیص اینکه اسکریپت فعال است یا خیر میتونی از تگ <noscript> استفاده کنی.

این لینک رو هم ببین (یه روش دیگه):
http://www.codeproject.com/Articles/23831/Detect-if-JavaScript-is-enabled-in-ASPX

ahmad156
سه شنبه 24 بهمن 1391, 18:14 عصر
دوست عزیز همون روشی که گفتم درسته.این هم سمپلش

bitcob589
سه شنبه 24 بهمن 1391, 18:53 عصر
در سمپل شما وضعیت فعال یا غیر فعال جاوا اسکریپت با فشار دادن دکمه مشخص می شود و به درستی وضعیت فعال یا غیر فعال بودن جاوا اسکریپت به درستی مشخص می شود
اما یک اشکال وجود دارد در نظر دارم وضعیت فعال بودن جاوا اسکریپت در page load صفحه بررسی شود اما به دلیل اینکه مقدار اولیه در دستور جاوا اسکریپت مقدار 0 است در صورتی که جاوا اسکریپت کاربر غیر فعال باشد در زمان لود صفحه مقدار 0 بر می گرداند چگونه می توان در زمان لود صفحه به صورت صحیح فعال یا غیر فعال بودن جاوا اسکریپت تشخیص داد

ahmad156
سه شنبه 24 بهمن 1391, 19:19 عصر
دوست عزیز دلیلش اینه که page_load قبل از document.ready اجرا میشه و نمیشه کاری کرد که بعد از اون اجرا بشه!!!

bitcob589
سه شنبه 24 بهمن 1391, 20:50 عصر
آیا روشی وجود دارد که در page_load تشخیص داده شود که جاوا اسکریپت کاربر غیر فعال است

aslan
سه شنبه 24 بهمن 1391, 23:24 عصر
http://stackoverflow.com/questions/12856480/deciding-whether-javascript-is-disabled-enabled-and-execute-a-server-side-code



protected void Page_Load(object sender, EventArgs e)
{
if (Session["JSChecked"] == null)
//JSChecked -indicates if it tried to run the javascript version
{
// prevent infinite loop
Session["JSChecked"] = "Checked";
string path = Request.Url + "?JScript=1";
Page.ClientScript.RegisterStartupScript(this.GetTy pe(), "redirect",
"window.location.href='" + path + "';", true);
}
if (Request.QueryString["JScript"] == null)
Response.Write("JavaScript is not enabled.");
else
Response.Write("JavaScript is enabled.");
}





http://www.beansoftware.com/ASP.NET-FAQ/Check-JavaScript-Enabled.aspx

website.expert
سه شنبه 24 بهمن 1391, 23:24 عصر
ببینید اینی که ضمیمه کردم به کارتون میاد؛
این هم لینک صفحش :
http://www.codeproject.com/Articles/23831/Detect-if-JavaScript-is-enabled-in-ASPX

ahmad156
چهارشنبه 25 بهمن 1391, 08:33 صبح
دوستان عزیز فکر نمیکنم ممکن باشه توی Page_Load این قضیه رو متوجه شد چون:
1-تشخیص فعال و غیرفعال بودن باید در سمت کلاینت مشخص بشه.
2-باید کد شما اول در Server اجرا بشه تا چیزی در سمت کلاینت قابل مشاهده یا اجرا باشه(یعنی باید اول Page_Load اجرا بشه تا چیزی قابل مشاهده یا قابل اجرا در سمت کلاینت باشه)

bitcob589
چهارشنبه 25 بهمن 1391, 11:34 صبح
protected void Page_Load(object sender, EventArgs e)
{
if (Session["JSChecked"] == null)
//JSChecked -indicates if it tried to run the javascript version
{
// prevent infinite loop
Session["JSChecked"] = "Checked";
string path = Request.Url + "?JScript=1";
Page.ClientScript.RegisterStartupScript(this.GetTy pe(), "redirect",
"window.location.href='" + path + "';", true);
}
if (Request.QueryString["JScript"] == null)
Response.Write("JavaScript is not enabled.");
else
Response.Write("JavaScript is enabled.");
}


داخل سشن چه چیزی ریخته می شود

دوستان عزیز فکر نمیکنم ممکن باشه توی Page_Load این قضیه رو متوجه شد چون:
1-تشخیص فعال و غیرفعال بودن باید در سمت کلاینت مشخص بشه.
2-باید کد شما اول در Server اجرا بشه تا چیزی در سمت کلاینت قابل مشاهده یا اجرا باشه(یعنی باید اول Page_Load اجرا بشه تا چیزی قابل مشاهده یا قابل اجرا در سمت کلاینت باشه)
آیا با کد نویسی توی Page_Load می توان به صورت پیش فرض جاوا اسکریپت سیستم کاربر فعال کنیم

ahmad156
چهارشنبه 25 بهمن 1391, 12:18 عصر
دوست عزیز عرض کردم با منطق asp.net جور در نمیاد

bitcob589
چهارشنبه 25 بهمن 1391, 12:40 عصر
دوست عزیز عرض کردم با منطق asp.net جور در نمیاد
آیا با جاوا اسکریپت این امکان وجود دارد به صورت پیش فرض جاوا اسکریپت سیستم کاربر فعال کنیم

ahmad156
چهارشنبه 25 بهمن 1391, 12:55 عصر
لازمه اینکار دسترسی به تنظیمات مرورگر هست که فکر نمیکنم مرورگر این اجازه رو بده
در ضمن چرا خودتون رو اذیت میکنین دوست عزیز .چه دلیلی داره کسی javascript مرورگرش رو غیرفعال کنه؟؟؟؟؟

bitcob589
چهارشنبه 25 بهمن 1391, 13:14 عصر
ببینید اینی که ضمیمه کردم به کارتون میاد؛
این هم لینک صفحش :
http://www.codeproject.com/Articles/23831/Detect-if-JavaScript-is-enabled-in-ASPX
در سمپل کد زیر بود درون سشن چه مقداری ریخته می شود


if (Session["JSChecked"] == null) //JSChecked -indicates if it tried to run the javascript version
{
Session["JSChecked"] = "Checked";
string path = Request.Url + "?JScript=1";
Page.ClientScript.RegisterStartupScript(this.GetTy pe(), "redirect", "window.location.href='" + path + "';", true);
}
if (Request.QueryString["JScript"] == null)
Response.Write("JavaScript is not enabled.");
else
Response.Write("JavaScript is enabled.");
}


در ضمن چرا خودتون رو اذیت میکنین دوست عزیز .چه دلیلی داره کسی javascript مرورگرش رو غیرفعال کنه؟؟؟؟؟
مطمئن باشم به صورت 100% جاوا اسکریپت کاربر فعال باشد

aslan
چهارشنبه 25 بهمن 1391, 20:12 عصر
دوست عزیز عرض کردم با منطق asp.net جور در نمیاد

سلام
لطفا کد مربوط به پست شماره 22 را تست کنید

bitcob589
پنج شنبه 26 بهمن 1391, 10:20 صبح
سلام
لطفا کد مربوط به پست شماره 22 را تست کنید
پست 22 تست شد یک اشکال وجود دارد در کد گذاشته شده فعال بودن یا غیر فعال بودن جاوا اسکریپت در کوئری استرینگ مشخص می شود حال اگر کوئری استرینگ پاک شود غیر فعال بودن جاوا اسکریپت نمایش داده می شود
چگونه می توان فعال یا غیر فعال بودن جاوا اسکریپت را در کوئری استرینگ نمایش نداد

bitcob589
جمعه 27 بهمن 1391, 09:39 صبح
آیا روشی وجود دارد که در page_load تشخیص داده شود که جاوا اسکریپت کاربر غیر فعال است

website.expert
جمعه 27 بهمن 1391, 17:22 عصر
سلام،

در سمپل کد زیر بود درون سشن چه مقداری ریخته می شود
مقدار checked رو درون سشن میریزه،مشخصه که.
یعنی یه بار صفحه چک شده و بعد مجدد صفحه رو refresh میکنه.(همین تنها مشکل این روشه - که فکر نکنم روش دیگه ای واسه page_load جواب بده!)
وبار دوم دیگه مجدد این کار رو انجام نمیده.


آیا روشی وجود دارد که در page_load تشخیص داده شود که جاوا اسکریپت کاربر غیر فعال است
این مثالی که گذاشتم دقیقاً همین کار رو انجام میده،الان دقیقاً مشکلتون چی هست؟!
شما میتونید تو این دستورات :
if (Request.QueryString["JScript"] == null)
Response.Write("JavaScript is not enabled.");
else
Response.Write("JavaScript is enabled.");
هر کاری که میخواید رو انجام بدید.

bitcob589
جمعه 27 بهمن 1391, 17:27 عصر
در سمپلی که گذاشته شد یک اشکال وجود دارد فعال بودن یا غیر فعال بودن جاوا اسکریپت در کوئری استرینگ مشخص می شود حال اگر کوئری استرینگ پاک شود غیر فعال بودن جاوا اسکریپت نمایش داده می شود
چگونه می توان فعال یا غیر فعال بودن جاوا اسکریپت را در کوئری استرینگ نمایش نداد

website.expert
جمعه 27 بهمن 1391, 23:09 عصر
در سمپلی که گذاشته شد یک اشکال وجود دارد فعال بودن یا غیر فعال بودن جاوا اسکریپت در کوئری استرینگ مشخص می شود حال اگر کوئری استرینگ پاک شود غیر فعال بودن جاوا اسکریپت نمایش داده می شود
چگونه می توان فعال یا غیر فعال بودن جاوا اسکریپت را در کوئری استرینگ نمایش نداد
فکر کنم با کمی تغییر بتونید بجای QueryString از Session,ViewState یا مثل اینها هم استفاده کنید.