PDA

View Full Version : اجرا کردن توابعی که نام آنها در متغیر ذخیره شده



webpower
یک شنبه 21 اسفند 1390, 15:31 عصر
سلام دوستان
من یه صفحه دارم که توی اون صفحه توسط آژاکس مقادیری رو میفرستم سپس در صفحه php بعد از محاسبه شرایط یک سری دستورات(جاوا اسکریپت) نمایش داده میشه میخوام که این دستورات بعد از برگشت در صفحه جاری اجرا بشه

مثلا اگر به صفحه php مقدار 1 رو فرستادم window.close() رو نمایش بده که تا اینجاش مشکلی نیست ولی وقتی نتایش توی صفحه بر میگرده window.close() به صورت یک رشته میاد که قابل اجرا نیست اگر از این حالت در بیاد میشه توی یک متغیر مثلا ajaxResponseText ذخیره و بعد با javascript:ajaxResponseText اجراش کرد لطفا راهنمایی کنید :d

narsic
دوشنبه 22 اسفند 1390, 09:21 صبح
باید از تابع eval استفاده کنید.
این تابع یک متن رو به عنوان وروردی میگیره و اون رو به عنوان کدهای جاوا اسکریپت اجرا میکنه.
مثال
​eval('alert(\'Barnamenevis.ORG\');');​​​ ​​​​​​​​​​​​​​​​ ​​​​​​​​​
موفق باشید

tecnocomputer2
دوشنبه 29 اسفند 1390, 19:11 عصر
سلام
منم یه همچین مشکلی دارم ولی با این تفاوت که میخام یک فانکشن بدم به یه متغیر از فانکشن و اون کد اجرا بشه!

تو این کد تابع ev کد جاوا رو میگیره و اجراش میکنه.
میخام یه فانکشن بهش بدم ولی فانکشن رو اجرا نمیکنه:

ev("alert('salam')");

ev(function(){
alert(1);
alert(2);
alert(3);
});

function ev(code)
{
eval(code);
}

L u k e
دوشنبه 29 اسفند 1390, 22:04 عصر
خوب Function که اجرا کردنش Eval نمی خواد
var delegate_func = function(name){
alert(name);
};


delegate_func("salam");

narsic
چهارشنبه 02 فروردین 1391, 17:24 عصر
سلام
منم یه همچین مشکلی دارم ولی با این تفاوت که میخام یک فانکشن بدم به یه متغیر از فانکشن و اون کد اجرا بشه!

تو این کد تابع ev کد جاوا رو میگیره و اجراش میکنه.
میخام یه فانکشن بهش بدم ولی فانکشن رو اجرا نمیکنه:

ev("alert('salam')");

ev(function(){
alert(1);
alert(2);
alert(3);
});

function ev(code)
{
eval(code);
}

با این کاری که شما دارید انجام میدید فقط تابع رو معرفی میکنید باید اون رو اجرا هم بکنید
مثال:
eval("function test() { alert('test Function Run!!!'); }test();");
من بعد از تعریف تابع فراخوانی هم میکنم.
نوروز مبارک
موفق باشید