PDA

View Full Version : سوال: عملکرد javascript:void(0)



parnian~parnian
پنج شنبه 29 خرداد 1393, 12:49 عصر
با سلام خدمت همه دوستای گلم

من دارم یه پرتال با php مینویسم که از یه قالب اماده استفاده کردم ....... این قالب از کدهای javascript توی بعضی جاهاش استفاده کرده منم خیلی مسلط نیستم به javascript ..... حالا به یه مشکلی برخورد کردم:

این قالب یه قسمتی داره که رنگ اصلی قالب رو کاربر میتونه عوضش کنه و به خوبی هم کار میکنه ولی من برا قسمت مدیریت صفحه های مربوطه رو داخل یه فولدر دیگه بردم و متاسفانه قسمت تغییر رنگ دیگه کار نمیکنه و کدی که اونجا استفاده شده اینه:


<li><a href="javascript:void(0)" title="noise-black" id="noise-black"></a></li>

من واقعا متوجه نمیشم چرا اینطوریه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟
شاید چون ادرس من عوض شده ولی خب اینجا که بخش ادرس دهی نداره ..............
نظر شما چیه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟

mehdi.mousavi
دوشنبه 02 تیر 1393, 14:19 عصر
با سلام خدمت همه دوستای گلم من دارم یه پرتال با php مینویسم که از یه قالب اماده استفاده کردم ....... این قالب از کدهای javascript توی بعضی جاهاش استفاده کرده منم خیلی مسلط نیستم به javascript ..... حالا به یه مشکلی برخورد کردم: این قالب یه قسمتی داره که رنگ اصلی قالب رو کاربر میتونه عوضش کنه و به خوبی هم کار میکنه ولی من برا قسمت مدیریت صفحه های مربوطه رو داخل یه فولدر دیگه بردم و متاسفانه قسمت تغییر رنگ دیگه کار نمیکنه و کدی که اونجا استفاده شده اینه:

<li><a href="javascript:void(0)" title="noise-black" id="noise-black"></a></li>
من واقعا متوجه نمیشم چرا اینطوریه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟ شاید چون ادرس من عوض شده ولی خب اینجا که بخش ادرس دهی نداره .............. نظر شما چیه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟


سلام.
هنگامیکه مرورگر لینک های javascript: URI رو follow میکنه، کدی که در قسمت URI نوشته شده رو ارزیابی میکنه و مقدار بازگشتی URI رو در صفحه فعلی قرار میده. مثال زیر رو در نظر بگیرید:

<a href="javascript:test();">Click me</a>
window.test = function(){
return 'test content';
}

اگر روی لینک فوق کلیک کنید، محتوای صفحه به "test content" تغییر خواهد کرد. اما، برگردوندن undefined در تابع فوق، باعث میشه تا مرورگر متوجه بشه که ما قصد داریم مرورگر از دنبال کردن لینک منصرف بشه:

window.test = function(){
return undefined;
}

اما void operator چی کار میکنه؟ این اپراتور expression داده شده به اون رو ابتدا evaluate میکنه، سپس مقدار undefined رو برمیگردونه. یعنی جای تابع فوق، و لینک ابتدایی می تونیم بدین شکل عمل کنیم:

<a href="javascript:void(0);">Click me</a>

دقت کنید (همونطوریکه گفتم) اگر جای 0 کد JS ای بنویسید ابتدا اون کد اجرا خواهد شد...

برای پاسخ دادن به سوال دوم شما نیز باید کد رو ببینم تا بتونم پاسخ بدم.

موفق باشید.

parnian~parnian
سه شنبه 03 تیر 1393, 14:35 عصر
خیلی ممنون از توضیحتتتون ...... خیلی جامع و عالی بود
این قسمتی از کد هست که تیکه کد تغییر رنگ قالب به رنگ های مختلف توشه :

<div class="content"> <div class="styleChoose"> <a href="#" class="pullStyle"><span><img src="img/icons/14x14/cog2.png" alt=""></span></a> <div class="colors"> <ul id="styling"> <li><a href="javascript:void(0)" title="noise-black" id="noise-black"></a></li> <li><a href="javascript:void(0)" title="noise-red" id="noise-red"></a></li> <li><a href="javascript:void(0)" title="noise-green" id="noise-green"></a></li> <li><a href="javascript:void(0)" title="noise-orange" id="noise-orange"></a></li> <li><a href="javascript:void(0)" title="noise-blue" id="noise-blue"></a></li> <li><a href="javascript:void(0)" title="noise-purple" id="noise-purple"></a></li> <li><a href="javascript:void(0)" title="noise-yellow" id="noise-yellow"></a></li> </ul> </div> <div class="settings"> <div class="navStyle"> <label class="formButton"><input type="radio" name="check" id="lnav" checked="checked"> <span>منو سمت راست صفحه</span></label> <label class="formButton"><input type="radio" name="check" id="tnav"> <span>منو بالای صفحه</span></label> </div> <div class="patternchange" dir="rtl"> <span>الگوهای موجود</span> <ul class="containerPattern"> <li><a href="#" id="pattern01"><img src="img/patterns/pattern01.png" alt=""></a></li> <li><a href="#" id="pattern02"><img src="img/patterns/pattern02.png" alt=""></a></li> <li><a href="#" id="pattern03"><img src="img/patterns/pattern03.png" alt=""></a></li> <li><a href="#" id="pattern04"><img src="img/patterns/pattern04.png" alt=""></a></li> <li><a href="#" id="pattern05"><img src="img/patterns/pattern05.png" alt=""></a></li> <li><a href="#" id="pattern06"><img src="img/patterns/pattern06.png" alt=""></a></li> <li><a href="#" id="pattern07"><img src="img/patterns/pattern07.png" alt=""></a></li> <li><a href="#" id="pattern08"><img src="img/patterns/pattern08.png" alt=""></a></li> <li><a href="#" id="pattern09"><img src="img/patterns/pattern09.png" alt=""></a></li> </ul> <div class="clearfix"></div> </div> </div> </div>
این هم کل کد یک صفحه (قسمتی که لینک داده به کلاس template .......... کد های template همین تیکه بالا است)

<?phpinclude '../object/main.php' ;$security = new security ;$security->check_manage();?><!DOCTYPE html><html lang="en"> <head> <meta charset="utf-8"> <title></title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content=""> <meta name="author" content=""><?php /*ob_start(); session_start(); if(@$_SESSIONE["login"]!="go") { header("location: login.php"); exit(); } */?> <!-- Le styles --> <link href="../css/bootstrap.css" rel="stylesheet"> <link href="../css/bootstrap-responsive.css" rel="stylesheet"> <link href="../css/general.css" rel="stylesheet"> <link href="../css/colors/noise-red.css" rel="stylesheet" id="theme">
<!-- HTML5 shim, for IE6-8 support of HTML5 elements --> <!--[if lt IE 9]> <link href="css/ie8.css" rel="stylesheet"> <script src="../../html5shim.googlecode.com/svn/trunk/html5.js"></script> <script src="js/respond/respond.min.js"></script> <![endif]-->
<!-- Fav and touch icons --> <link rel="apple-touch-icon-precomposed" sizes="144x144" href="../ico/apple-touch-icon-144-precomposed.png"> <link rel="apple-touch-icon-precomposed" sizes="114x114" href="../ico/apple-touch-icon-114-precomposed.png"> <link rel="apple-touch-icon-precomposed" sizes="72x72" href="../ico/apple-touch-icon-72-precomposed.png"> <link rel="apple-touch-icon-precomposed" href="../ico/apple-touch-icon-57-precomposed.png"> <link rel="shortcut icon" href="../ico/favicon.png">
<script> //* hide all elements & show preloader document.documentElement.className += 'loader'; </script> </head>
<body>
<div class="loading"><img src="../img/ajaxLoader/loader01.gif" alt=""></div>
<!-----------------------------------------------------> <div class="mainContainer" ><!-----------------------------------------------------> <?php $security -> Covering("inc_temp/menu2"); ?><!-----------------------------------------------------> <?php $security -> Covering("inc_temp/menu1"); ?><!-----------------------------------------------------> <?php $security -> Covering("inc_temp/header"); ?><!-----------------------------------------------------><div class="widgetBar"> <div class="barInner"> <?php $security -> Covering("inc_temp/menu3"); ?><!-----------------------------------------------------> <div class="widgetBarContent"> </div> </div> </div><!-----------------------------------------------------> <?php $security -> Covering("inc_temp/template"); ?><!-----------------------------------------------------> <?php $security -> Covering("inc_temp/menu_top"); ?><!-----------------------------------------------------> <div class="contentInner"> <div class="iWidgets" align="center"> <a href="#" rel="tipsyN" title="Add something" class="iWidget"> <img src="../img/icons/24x24/add.png" alt=""></a> </div> <div class="divider"><div><span></span></div></div> <div class="row-fluid"> </div> </div> </div> </div>
<!-- Le javascript ================================================== --> <!-- Placed at the end of the document so the pages load faster --> <script src="../js/jquery-1.8.3.js"></script> <script src="../js/ui/jquery-ui-1.9.2.custom.js"></script>
<!-- flot plugin --> <script src="../js/flot/excanvas.min.js"></script> <script src="../js/flot/jquery.flot.js"></script> <script src="../js/flot/jquery.flot.pie.min.js"></script> <script src="../js/flot/jquery.flot.resize.js"></script> <script src="../js/flot/jquery.flot.orderBars.js"></script>
<!-- Jquery form wizard --> <script src="../js/formWizard/jquery.form.js"></script> <script src="../js/formWizard/jquery.validate.js"></script> <script src="../js/formWizard/bbq.js"></script> <script src="../js/formWizard/jquery.form.wizard.js"></script>
<!-- antiscroll plugin --> <script src="../js/scrollbar/jquery.mCustomScrollbar.js"></script>
<!-- fullcalendar plugin --> <script src="../js/fullcalendar/fullcalendar.js"></script>
<!-- tipsyS plugin --> <script src="../js/tipsy/jquery.tipsy.js"></script>
<!-- fancybox plugin --> <script src="../js/fancybox/jquery.fancybox.pack.js"></script>
<!-- uniform plugin --> <script src="../js/uniform/jquery.uniform.js"></script>
<!-- Jquery dataTable --> <script src="../js/dataTable/jquery.dataTables.js"></script>
<!-- uniform plugin --> <script src="../js/sparklines/jquery.sparkline.js"></script>
<!-- chosen plugin --> <script src="../js/chosen/chosen.jquery.js"></script>
<!-- cookie plugin --> <script src="../js/cookie/jquery.cookie.js"></script>
<!-- jplayer plugin --> <script src="../js/jplayer/jquery.jplayer.min.js"></script>
<!-- mask plugin --> <script src="../js/mask/jquery.maskedinput-1.3.js"></script>
<!-- easypiechart plugin --> <script src="../js/easypiechart/jquery.easy-pie-chart.js"></script>
<!-- globalize plugin --> <script src="../js/globalize/globalize.js"></script> <script src="../js/globalize/cultures/globalize.culture.de.js"></script>
<!-- jplayer plugin --> <script src="../js/jplayer/jquery.jplayer.min.js"></script> <script src="../js/jplayer/jplayer.playlist.min.js"></script>
<!-- ibutton plugin --> <script src="../js/ibutton/jquery.ibutton.js"></script>
<!-- daterangepicker plugin --> <script src="../js/dateRangepicker/date.js"></script> <script src="../js/dateRangepicker/daterangepicker.jQuery.js"></script>
<!-- antiscroll plugin --> <script src="../js/antiscroll/jquery-mousewheel.js"></script> <script src="../js/antiscroll/antiscroll.js"></script>
<script src="../js/bootstrap.min.js"></script> <script src="../js/application.js"></script>
<script src="../js/general.js"></script> <script src="../js/forms.js"></script> <script src="../js/dashboard.js"></script>
<script> $(document).ready(function() { setTimeout('$("html").removeClass("loader")',1000); }); </script>
</body></html>

parnian~parnian
دوشنبه 09 تیر 1393, 21:29 عصر
دوستان عزیزم اگه این کد واضح نیست بگین تا اطلاعات بیشتری بذارم .................... ولی جواب این سوال برام حیاتیه اگه کسی میدونه لطفا بگه